사용자가 설치된 경우 다른 응용 프로그램에 대한 홈 화면 바로 가기를 만드는 응용 프로그램을 만들고 있습니다.다른 응용 프로그램의 홈 화면 바로 가기
부분적으로 작동합니다. 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);
매니페스트 : 나는 안드로이드 산들에해야한다고 다른 아무것도
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
있습니까?
EDIT
보통, 이것은 다소 복잡하다. 어떻게 든 작동되도록 만들었습니다.
나는이 줄을 추가 할 때 : 나는 새로운 라인처럼 "asd"
을 addIntent
설정, 그리고 그것은 메인 화면에 바로 가기를 생성
shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "asd");
하지만 이름을. 거기에 대한 논리 설명이 있습니까?
당신이 더 나은 또한 런타임 권한을 추가 할 수 있습니다 ** M ** –
을 그것은 정상적인 수준의 권한, 위험하지 않습니다, 그래서 doen't 런타임 요청이 필요합니다. Manifest.xml에서 설정하는 것만으로 충분합니다. – filipst