【发布时间】:2013-11-14 12:41:20
【问题描述】:
假设,我有一些 Android 应用程序可以帮助用户安装一些其他应用程序。有没有办法在主屏幕上创建这个应用程序的快捷方式?我也可以指定这些快捷键的位置吗?
【问题讨论】:
-
我不明白;你说的快捷方式是什么?所以你想为已安装的应用程序创建应用程序图标/小部件?
-
@LotusUNSW 是的,我想为已安装的应用创建应用图标
标签: android
假设,我有一些 Android 应用程序可以帮助用户安装一些其他应用程序。有没有办法在主屏幕上创建这个应用程序的快捷方式?我也可以指定这些快捷键的位置吗?
【问题讨论】:
标签: android
试试这个:
public void createShortCut() {
Intent shortcutintent = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
shortcutintent.putExtra("duplicate", false);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcutname));
Parcelable icon = Intent.ShortcutIconResource.fromContext(getApplicationContext, R.drawable.icon);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);
shortcutintent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent("com.whatsapp"));
sendBroadcast(shortcutintent);
}
【讨论】:
稍微改进的版本:我们正在检查快捷方式是否已经创建 如果用户将其从屏幕上移除,则不得创建
final static private String PREF_KEY_SHORTCUT_ADDED = "PREF_KEY_SHORTCUT_ADDED";
@Override
public void onStart(){
super.onStart();
// Checking if ShortCut was already added
sharedPreferences = getPreferences(MODE_PRIVATE);
boolean shortCutWasAlreadyAdded = sharedPreferences.getBoolean(PREF_KEY_SHORTCUT_ADDED, false);
if (!shortCutWasAlreadyAdded) createShortcutIcon();
} // end onStart
// Creates shortcut on Android widget screen
private void createShortcutIcon(){
Intent shortcutIntent = new Intent(getApplicationContext(), Splash.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, getString(R.string.app_name));
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);
// Remembering that Shortcut was already added
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(PREF_KEY_SHORTCUT_ADDED, true);
editor.commit();
objPublicDelegate.showToast(getString(R.string.app_name)+ " shortcut created on screen.");
} // end createShortcutIcon
【讨论】:
Android 上没有这样的 API。
【讨论】: