私がインストールしている場合、私の別のアプリのホーム画面のショートカットを作成するアプリを作っています。別のアプリケーションへのホーム画面ショートカット
部分的に動作します。 23レベル以下のAPIレベルでは、完全に機能します。アンドロイド6では、ショートカットを作成しますが、Intent.EXTRA_SHORTCUT_NAME
とIntent.EXTRA_SHORTCUT_ICON_RESOURCE
をバイパスし、使用したくない元のアイコンと名前を残します。ここで
ApplicationInfo selectedApp; //app that should be used for shortcut
Intent shortcutIntent = new Intent(getPackageManager().getLaunchIntentForPackage(selectedApp.packageName));
shortcutIntent.setAction(Intent.ACTION_MAIN);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "MyNewShortcut");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.ic1));
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
addIntent.putExtra("duplicate", false);
getApplicationContext().sendBroadcast(addIntent);
マニフェスト:私はAndroidのマシュマロ上で行う必要があることを別の何かが
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
ありますか?
EDIT
okが、これは少し混乱です。私は何とかそれを働かせることができました。
私はこの行を追加する場合:
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "asd");
をそれは、メイン画面上に、私はaddIntent
に設定された名前ではなく、"asd"
新しいライン上のようなショートカットが作成されます。それについて論理的な説明はありますか?
は、あなたがより良い、実行時のアクセス許可を追加することができます** M ** –
をそれは正常なレベルの権限、危険ではないので、それはdoen'tランタイム要求が必要です。 Manifest.xmlで設定するだけで十分です – filipst