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 (将#修改为@)