我开发了android小部件应用程序,它的工作正常。 现在我的客户要求,当用户安装此应用程序时,它自动需要放在主屏幕顶部位置。这该怎么做?请帮帮我。
答案 0 :(得分:2)
从Android O开始,在您的应用中,您可以创建系统请求,将小部件固定到支持的启动器上。
请参阅本页底部:https://developer.android.com/preview/features/pinning-shortcuts-widgets.html
答案 1 :(得分:1)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
AppWidgetManager mAppWidgetManager = getSystemService(AppWidgetManager.class);
ComponentName myProvider = new ComponentName(AddWidgetActivity.this, AppWidgetSmall.class);
Bundle b = new Bundle();
b.putString("ggg", "ggg");
if (mAppWidgetManager.isRequestPinAppWidgetSupported()) {
Intent pinnedWidgetCallbackIntent = new Intent(AddWidgetActivity.this, AppWidgetSmall.class);
PendingIntent successCallback = PendingIntent.getBroadcast(AddWidgetActivity.this, 0,
pinnedWidgetCallbackIntent, 0);
mAppWidgetManager.requestPinAppWidget(myProvider, b, successCallback);
}
}
答案 2 :(得分:-1)
请参阅http://viralpatel.net/blogs/android-install-uninstall-shortcut-example/:
Android为我们提供了一个intent类com.android.launcher.action.INSTALL_SHORTCUT,可用于向主屏幕添加快捷方式。在下面的代码片段中,我们使用名称HelloWorldShortcut创建活动MainActivity的快捷方式。
首先我们需要将权限INSTALL_SHORTCUT添加到android manifest xml。
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
addShortcut()方法在主屏幕上创建一个新的快捷方式。
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.drawable.ic_launcher));
addIntent
.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
}
注意我们如何创建保存目标活动的shortcutIntent对象。此intent对象作为EXTRA_SHORTCUT_INTENT添加到另一个intent中。最后,我们广播新的意图。这会添加一个名称为的快捷方式 EXTRA_SHORTCUT_NAME和EXTRA_SHORTCUT_ICON_RESOURCE定义的图标。 注意:有一点值得注意的是,当您定义从快捷方式调用的活动时,您必须在标记中定义android:exported =“true”属性。
从主屏幕卸载快捷方式:
与安装类似,卸载或删除Android中的快捷方式使用Intent(UNINSTALL_SHORTCUT)来执行任务。在下面的代码中,我们删除了主屏幕上添加的快捷方式。
我们再次需要执行卸载快捷方式任务的权限。将以下权限添加到Android清单xml。
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
removeShortcut()方法与addShortcut()完全相反。除了removeShortcut调用UNINSTALL_SHORTCUT intent之外,大多数代码都是类似的。
private void removeShortcut() {
//Deleting 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
.setAction("com.android.launcher.action.UNINSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
}
您可以尝试此演示HERE