在主屏幕android中创建快捷方式
这个问题听起来可能重复,但我发现没有一个答案是有效的: 我已经回答了以下问题: 但提议的解决方案不起作用 我使用了下面的解决方案,它在API级别<23的情况下工作在主屏幕android中创建快捷方式,android,android-launcher,android-shortcut,Android,Android Launcher,Android Shortcut,这个问题听起来可能重复,但我发现没有一个答案是有效的: 我已经回答了以下问题: 但提议的解决方案不起作用 我使用了下面的解决方案,它在API级别
Intent shortcutIntent = new Intent(context,
LedgerDetailActivity.class);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, ledgerBean.getName());
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.ic_action_comments));
addIntent.setAction("android.intent.action.CREATE_SHORTCUT");
addIntent.putExtra("duplicate", false);
context.sendBroadcast(addIntent);
新增权限:
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
但上述解决方案并不适用于所有设备,有时会提供如下奇怪的功能:
有人能帮我吗,这个功能没有官方文档,请不要和安卓N中引入的应用程序快捷方式混淆。我需要在主屏幕上显示快捷方式 要首先添加快捷方式,您必须在Android中添加权限:
<uses-permission
android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
如果发现创建了多个快捷方式以避免出现这种情况,则可以检查该快捷方式是否已创建:
if(!getSharedPreferences(Utils.APP_PREFERENCE, Activity.MODE_PRIVATE).getBoolean(Utils.IS_ICON_CREATED, false)){
addShortcut();
getSharedPreferences(Utils.APP_PREFERENCE, Activity.MODE_PRIVATE).edit().putBoolean(Utils.IS_ICON_CREATED, true);
}
与其从所有不起作用的事情开始,也许你应该从解释你想做什么开始。光是这个话题是远远不够的。至少有一个答案完全误解了你。您可能需要提供一个屏幕截图并解释预期结果。操作应该是
com.android.launcher.action.INSTALL\u快捷方式
。在我测试过的三星设备上,创建快捷方式对我也不起作用。请更新我上面的评论。我使用的是Intent.EXTRA\u快捷方式\u图标
和位图
。这导致了TransactionTooLargeException
。我必须调整位图的大小。
if(!getSharedPreferences(Utils.APP_PREFERENCE, Activity.MODE_PRIVATE).getBoolean(Utils.IS_ICON_CREATED, false)){
addShortcut();
getSharedPreferences(Utils.APP_PREFERENCE, Activity.MODE_PRIVATE).edit().putBoolean(Utils.IS_ICON_CREATED, true);
}