如何检测Android应用程序快捷方式是否被用户从主屏幕中删除?

时间:2018-01-02 19:15:50

标签: android

我正在使用minSdkVersion = 16&对于我的应用,targetSdkVersion = 25,并使用以下代码为我的应用中的不同活动创建快捷方式。

private void addShortcut() {
        //Adding shortcut for MainActivity
        //on Home screen
        Intent shortcutIntent = new Intent(getApplicationContext(),
                MainActivity.class);

        shortcutIntent.setAction(Intent.ACTION_MAIN);

        Intent addIntent = new Intent();
        addIntent
                .putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "HelloWorldShortcut");
        addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
                Intent.ShortcutIconResource.fromContext(getApplicationContext(),
                        R.mipmap.ic_launcher));

        addIntent
                .setAction("com.android.launcher.action.INSTALL_SHORTCUT");
        getApplicationContext().sendBroadcast(addIntent);
    }

现在,如果用户从主屏幕中删除了属于我的应用程序的任何快捷方式,我需要在我的首选项中设置一个标志。因此,如果用户删除了我需要在我的应用程序中收到通知的快捷方式。如何才能做到这一点。

1 个答案:

答案 0 :(得分:0)

  

使用以下代码为我的应用中的不同活动创建快捷方式

不,您正在使用该代码来请求快捷方式。用户的主屏幕可能不支持这样的请求。用户的主屏幕可能要求用户进行确认,并且用户可能拒绝添加快捷方式。在Android 8.0 +上,that broadcast no longer has any effect

  

如果用户删除了我需要在我的应用中收到通知的快捷方式

Android SDK中没有任何内容,抱歉。主屏幕无需让任何人知道通过遗留com.android.launcher.action.INSTALL_SHORTCUT广播创建的快捷方式组合的变化。