2010-07-10 26 views
12

Merhaba Bu android programlaması için yeni.Android içinde programlı olarak uygulama kısayollarını nasıl ekleyebilirim

Uygulamamı ana ekrana kısayol programlı olarak eklemem gerekiyor.

Lütfen bunun için fikir verin. Mümkünse lütfen mevcut kısayolları nasıl yöneteceğinizi (silme ve daha fazla kısayol ekleyerek) söyleyin.

+0

Ben apis bu işlevselliği maruz sanmıyorum. Varsayılan olarak çekme iletişim kutusunda bir uygulama simgesi alırsınız. –

cevap

9

Ana Ekranda Programatik Olarak Uygulama Kısayolu Ekleme konusunda size yardımcı olabilecek bir makale okudum.

example'a başvurabilirsiniz.

Ayrıca, kısayol here ile ilgili stackoverflow sorusuna da başvurabilirsiniz.

+0

, bunun hakkında konuşulan başka bir bağlantı olabilir: http://code.google.com/p/apps-for-android/source/browse/#git%2FAnyCut ve bu: https: // groups. google.com/forum/?fromgroups=#!topic/android-developers/B9n6PjtTKic –

5

İlk ekranın onCreate() yönteminde bu yöntemi çağırın. Ayrıca söz konusu uygulama SharedPreferences kullanarak ilk kez çalıştığı kontrol etmek sağlamak gibi yaptı: Ben stackoverflow farklı çözümler çalışırken oldukça zaman harcadım, ama

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, this.getResources().getString(R.string.app_name)); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(getApplicationContext(), 
         R.drawable.ic_launcher)); 

    addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    getApplicationContext().sendBroadcast(addIntent); 
} 

    // TO check app is installed first time. 
    SharedPreferences prefs = getSharedPreferences("ShortCutPrefs", MODE_PRIVATE); 
    if(!prefs.getBoolean("isFirstTime", false)){ 
     addShortcut(); 
     SharedPreferences.Editor editor = prefs.edit(); 
     editor.putBoolean("isFirstTime", true); 
     editor.commit(); 
    } 
4

çoğu, çünkü işe yaramaz Faaliyetlerin yeni örneklerini başlatıyorlar. Uygulama listesindeki veya Google Play tarafından otomatik olarak yüklenen (tam olarak etkinliğe başla veya etkinliğe önceden Etkinleştir'i getir) olan kısayollara ihtiyacım var.

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     //Save the flag to SharedPreferences to prevent duplicated shortcuts 
     if (!settings.isShortcutAdded()) { 
      addShortcut(); 
      settings.setShortcutAdded(true); 
     } 
    } 

    private void addShortcut() { 
     Intent shortcutIntent = new Intent(getApplicationContext(), MainActivity.class); 
     shortcutIntent.setAction(Intent.ACTION_MAIN); 
     shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
     int flags = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT; 
     shortcutIntent.addFlags(flags); 

     Intent addIntent = new Intent(); 
     addIntent.putExtra("duplicate", false); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getResources().getString(R.string.app_name)); 
     addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource 
       .fromContext(getApplicationContext(), R.drawable.ic_launcher)); 
     addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
     getApplicationContext().sendBroadcast(addIntent); 
    } 

Ve bildirim güncellemek için unutma:

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

Bu şeyi javascript ile yapabilir miyiz? karınca fikri? –

İlgili konular