2014-01-23 3 views
0

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

Я добавил это AndroidManifest.xml

<activity 
     android:name="com.example.test.ShortCutActivity" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/title_activity_short_cut" > 

     <intent-filter> 
      <action android:name="android.intent.action.CREATE_SHORTCUT" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 

</activity> 

Также у меня есть Actvity созданный с именем ShortCutActivity в моем проекте.

ShortCutActivity.java

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ShortcutIconResource icon = 
      Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher); 

     Intent intent = new Intent(); 

     Intent launchIntent = new Intent(this,MainActivity.class); 

     intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launchIntent); 
     intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "ShortCut"); 
     intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); 

     setResult(RESULT_OK, intent); 
} 

Но это не создает каких-либо клавиш. Я что-то упускаю ?

ответ

2

Используйте этот пример код в вашей деятельности, которая устанавливается как гранатомет и MAIN в AndroidManifest.xml

private void createShortcut(){ 
    Intent shortcutIntent = new Intent(getApplicationContext(),MainActivity.class); 
    shortcutIntent.setAction(Intent.ACTION_MAIN); 
    Intent intent = new Intent(); 
    intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
    intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "ShortcutDemo"); 
    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.ic_launcher)); 
    intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    getApplicationContext().sendBroadcast(intent); 
} 

Также применяется следующими разрешения в вашем AndroidManifest.xml

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

Надежда это будет работать для вас

+0

Это будет работать только при запуске приложения, я хочу, чтобы ярлык был создан когда приложение установлено –

+0

Фактически этот параметр предоставляется в профиле разработчика на рынке google в настройке опции –

+0

, мы можем создавать ярлык программно только после запуска активности в первый раз –

-1
Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);  
shortcutIntent.setClassName(this, this.getClass().getName()); 

Intent intent = new Intent();  
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);  
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "hello");  
Parcelable iconResource = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon); 

intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource); 
intent.setAction(Intent.ACTION_CREATE_SHORTCUT); 

getApplicationContext().sendBroadcast(intent); 
Смежные вопросы