微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android 快捷方式在 VIVO 10 中不起作用

如何解决Android 快捷方式在 VIVO 10 中不起作用

我在我的应用程序中实现了快捷方式,但这在 VIVO 10(Funtouch OS)中不起作用。请帮我。我已经用过很多方法但都没有成功。

方法 1:我正在使用此代码但不起作用

@SuppressLint("NewApi")
private fun shortcut(){
    val shortcutManager = getSystemService(ShortcutManager::class.java)
    val nhentaiIntent = Intent(this,MainActivity::class.java)
    nhentaiIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    nhentaiIntent.action = Intent.ACTION_VIEW
    if (shortcutManager!!.isRequestPinShortcutSupported) {
        val pinShortcutInfo = ShortcutInfo.Builder(this,"my-shortcut")
                .setIcon(Icon.createWithResource(this,R.mipmap.ic_launcher))
                 .setShortLabel("hello Shortcut")
                .setIntent(nhentaiIntent)
                .build()
        val pinnedShortcutCallbackIntent = shortcutManager.createShortcutResultIntent(pinShortcutInfo)
        val successCallback = PendingIntent.getbroadcast(this,/* request code */ 0,pinnedShortcutCallbackIntent,/* flags */ 0)

        shortcutManager.requestPinShortcut(pinShortcutInfo,successCallback.intentSender)
    }

}

方法二:我也用过这个代码但是没用

Intent nhentaiIntent = new Intent(context,MainActivity.class);
    nhentaiIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    nhentaiIntent.setAction(Intent.ACTION_VIEW);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
        if (shortcutManager.isRequestPinShortcutSupported()) {
            ShortcutInfo info = new ShortcutInfo.Builder(context,"Shortcut")
                    .setIntent(nhentaiIntent)
                    .setIcon(Icon.createWithResource(context,R.mipmap.ic_launcher))
                    .setShortLabel("Hello ")
                    .setLongLabel("Lable")
                    .build();
            Intent addIntent = shortcutManager.createShortcutResultIntent(info);
            shortcutManager.requestPinShortcut(info,PendingIntent.getbroadcast(context,addIntent,0).getIntentSender());
            Toast.makeText(context,"supported_launcher",Toast.LENGTH_LONG).show();
        } else {
            // Todo: Maybe implement this for launchers without pin shortcut support?
            // Todo: Should be the same with the fallback for Android < O
            // for Now just show unsupported
            Toast.makeText(context,"unsupported_launcher",Toast.LENGTH_LONG).show();
        }
    }

方法三:我也用过这个代码但是不行

private fun addShourcut() {
    if (ShortcutManagerCompat.isRequestPinShortcutSupported(applicationContext)) {
        val shortcutInfo =
            ShortcutInfoCompat.Builder(applicationContext,"#1")
                .setIntent(
                    Intent(applicationContext,MainActivity::class.java).setAction(
                        Intent.ACTION_MAIN
                    )
                ) // !!! intent's action must be set on oreo
                .setShortLabel("Test")
                .setIcon(
                    IconCompat.createWithResource(
                        applicationContext,R.mipmap.ic_launcher
                    )
                )
                .build()
        ShortcutManagerCompat.requestPinShortcut(applicationContext,shortcutInfo,null)
    } else {
        Toast.makeText(
            this@MainActivity,"launcher does not support short cut icon",Toast.LENGTH_LONG).show()
    }
}

请帮助我在此问题上花费更多时间的任何人。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。