2013-06-01 20 views
18

Bir android uygulama geliştirirken bu sorun ortaya çıktı. Gelişim sırasında topladığım bilgileri paylaşmayı düşündüm.Programatik olarak android'de Ana ekrana kısayol nasıl eklenir

+0

. Bu nedenle OP, tavsiye edildiği gibi [yeni bir soru sormaya] karar verdi (http://stackoverflow.com/questions/ask). Kendi cevabının, kopyadaki kabul edilen cevaba çok farklı bilgiler içerdiğini göreceksiniz. Pls tekrar açmayı düşünüyor. –

+0

Oldukça eski bir makaleyi neredeyse hiç sunmadan ürettiği için itibar kazanmak için kolay bir yol gibi görünüyor: http://viralpatel.net/blogs/android-install-uninstall-shortcu t-example/ – igorsantos07

cevap

62

Android, ana ekrana kısayollar eklemek için kullanabileceğiniz com.android.launcher.action.INSTALL_SHORTCUT bir intens sınıfı sağlar. Aşağıdaki kod snippet'inde HelloWorldShortcut adıyla bir MainActivity aktivitesi kısayolu oluşturuyoruz.

Önce android manifest xml'ye INSTALL_SHORTCUT izni eklememiz gerekiyor.

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

addShortcut() yöntemi, Giriş ekranında yeni bir kısayol oluşturur. Bizim hedef etkinliğe tutan shortcutIntent nesne oluşturmak nasıl

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, "HelloWorldShortcut"); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, 
      Intent.ShortcutIconResource.fromContext(getApplicationContext(), 
        R.drawable.ic_launcher)); 

    addIntent 
      .setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    addIntent.putExtra("duplicate", false); //may it's already there so don't duplicate 
    getApplicationContext().sendBroadcast(addIntent); 
} 

Not. Bu amaç nesnesi, EXTRA_SHORTCUT_INTENT olarak başka bir hedefe eklenir.

Son olarak yeni amacı yayınlıyoruz. Bu, EXTRA_SHORTCUT_NAME olarak belirtilen ad ve EXTRA_SHORTCUT_ICON_RESOURCE tarafından tanımlanan simge ile bir kısayol ekler.

Şerefe! Chanaka

Ayrıca birden çok kısayol önlemek için bu kodu koymak: pls Tekrar yapılan cevaplar tamamen değinilmeyecek unutmayın: aynısı olarak işaretlenmiş mods

if(!getSharedPreferences(Utils.APP_PREFERENCE, Activity.MODE_PRIVATE).getBoolean(Utils.IS_ICON_CREATED, false)){ 
      addShortcut(); 
      getSharedPreferences(Utils.APP_PREFERENCE, Activity.MODE_PRIVATE).edit().putBoolean(Utils.IS_ICON_CREATED, true); 
     } 
+0

iyi araştırılan cevap için teşekkürler belgesiz işlevsellik –

+4

Benim için çalıştınız – David

+2

Ben şimdi oyun deposu otomatik olarak bunu kullanıcı için yapar. (Ayarlarda değiştirilebilir), bu sadece masaüstünde 2 simge yapar. –

İlgili konular