我需要在主屏幕上为我的应用添加快捷方式(以编程方式)。我知道app store默认是这样做的,但首先,这个应用程序不会出现在google app store上。我搜索了很多,一遍又一遍地发现基本上相同的代码行,但它似乎不适合我。
我使用的代码:在manifest中:
<activity android:name=".MainScreenActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
在onCreate方法中,我调用了执行以下操作的函数:
private boolean createShortcut()
{
//create shortcut intent
Intent shortcutIntent = new Intent(getApplicationContext(),MainScreenActivity.class);
shortcutIntent.setAction(Intent.ACTION_MAIN);
//create intent to add and define the shortcut
Intent addingIntent = new Intent();
addingIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,shortcutIntent);
addingIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,"SenseGuard");
addingIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(getApplicationContext(),R.drawable.peak_detection_icon));
addingIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addingIntent);
}
我尝试将“getApplicationContext()”切换到“this”。我尝试了一个实际的平板电脑和模拟器,但我不能让它工作.
2条答案
按热度按时间30byixjq1#
这样做:
第一步:
更新您的manifest.xml:
第二步:
在你的www.example.com中MainActivity.java创建**addShortcut()**方法,并在它的块中放入以下代码:
第三步:
设置onClickListener为您的视图创建快捷方式:
这对我很有效。。happy codinngggg...:)
osh3o9ms2#
这个代码不能保证有效。该广播也由ShortcutManagerCompat发送(您可能应该使用它,而不是手动发送广播)。
然而,这有两个问题。
1.您的默认启动器不能保证侦听此广播。例如,Nova Launcher默认情况下禁用此行为。其他发射器甚至可能根本不监听该动作。
1.在Android Oreo(26)及以上版本上,这不会像你期望的那样工作(阅读我链接的方法的评论以了解更多细节)。
你仍然可以使用这种逻辑,并希望它适用于你的一些用户,但请记住,许多默认的启动器甚至不再有应用程序抽屉,所以添加快捷方式可能会给予你的用户重复的图标。而且,我知道,至少对我来说,我有我的主屏幕组织我想要的,如果我安装一个应用程序,它会真的很烦人,它添加到我的主屏幕。
如果你 * 正在 * 使用默认的AOSP启动器(或关闭分支),但是,它不工作,请确保将以下内容添加到你的清单: