2015-12-30 2 views
0

Я создал ярлык приложения на главном экране, но его не работает. он всегда показывает, что приложение для тостов не установлено.андроид ярлык не установлен

У меня есть MainFragmentActivity и фрагмент

это фрагмент класса

Intent shortcutIntent = new Intent(Intent.ACTION_MAIN); 
shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
shortcutIntent.setClassName(getActivity(),this.getClass().getName()); 
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 


Intent intent = new Intent(); 
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getResources().getString(R.string.app_name)); 
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, 
Intent.ShortcutIconResource.fromContext(getActivity(), R.drawable.icon)); 
intent.putExtra("duplicate", false); 
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 

getActivity().sendBroadcast(intent); 

это Manifest

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> 
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/> 

Я попытался мое приложение в эмуляторе с апи 19. Любая помощь будет оценили. плз !!!!

ответ

0
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, getString(R.string.app_name)); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, 
      Intent.ShortcutIconResource.fromContext(getApplicationContext(), 
        R.mipmap.ic_launcher)); 
    addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    getApplicationContext().sendBroadcast(addIntent); 
} 
+0

Если вы используете его внутри фрагмента, то u должен использовать getContext не getApplicationContext() или использовать ссылку для активности, а затем getApplicationContext() –

Смежные вопросы