添加Android应用程序的快捷方式到主屏幕打开按钮点击
2022-09-05 00:27:04
我想通过按下按钮轻松将我的应用程序添加到主屏幕。因此,我在想的是我的应用程序底部的一个按钮,上面写着“添加到主屏幕”,当按下它时,它会在不关闭应用程序的情况下将快捷方式添加到主屏幕。我应该添加什么代码来做到这一点?
我想通过按下按钮轻松将我的应用程序添加到主屏幕。因此,我在想的是我的应用程序底部的一个按钮,上面写着“添加到主屏幕”,当按下它时,它会在不关闭应用程序的情况下将快捷方式添加到主屏幕。我应该添加什么代码来做到这一点?
发送INSTALL_SHORTCUT广播,并将生成的 Intent 作为附加内容(在本例中,结果 Intent 直接打开某些活动)。
//where this is a context (e.g. your current activity)
final Intent shortcutIntent = new Intent(this, SomeActivity.class);
final Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
// Sets the custom shortcut's title
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));
// Set the custom shortcut icon
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));
// add the shortcut
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
您还需要在清单中此权限:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
还行。。。我知道这是旧线程,但我想确保访问此线程的工程师拥有最新信息。
从 Android O 开始 - 作为后台检查限制(在本例中为隐式接收器)的一部分,com.android.launcher.action.INSTALL_SHORTCUT广播不再对您的应用产生任何影响,因为它现在是一个私有的隐式广播。
Per Android O ActivityManagerService.java :
case "com.android.launcher.action.INSTALL_SHORTCUT":
// As of O, we no longer support this broadcasts, even for pre-O apps.
// Apps should now be using ShortcutManager.pinRequestShortcut().
Log.w(TAG, "Broadcast " + action
+ " no longer supported. It will not be delivered.");
我希望这有帮助!