2013-01-19 26 views
5

Android'imin başlatıcısı üzerinde ADB'den bir kısayol oluşturmak mümkün müdür? Uygulamalarımı bilgisayarımdan yüklemek için bir .bat dosyasına sahibim (çift tıklama ile), ancak bundan sonra her zaman başlatıcının büyük (kullanıcı dostu olmayan) uygulama listesini aramam gerekiyor. Eğer bu özelliği .bat dosyasına eklemek mümkün olsaydı harika olurdu. Zaten herhangi bir şans olmadan internette arama yapmayı deniyorum: S.ADB aracılığıyla Android'de kısayol oluşturma

Şimdiden teşekkürler

+1

Eğer 'yoluyla adb shell broadcast' diyebiliriz ki nispeten iyi belgelenmiş' com.android.launcher.action.INSTALL_SHORTCUT' var, ama bir Ekstralar fırlatma amacıdır. Bunu komut satırına yerleştiremezseniz, hiçbir şey yapmayan, ancak bu amacı yayınlayan, sonra yükleyip, onu çağırıp komut satırından kaldıran bir saplama uygulaması yazabilirsiniz. – 323go

cevap

7

Bunun üstesinden gelmek için birkaç yol var. Eğer ana ihtiyacınız yeniden düzenlediğiniz her defasında uygulamanızı hızlı bir şekilde başlatacaksa, o zaman en kolay çözüm adb shell am intent -n com.example.app/.App'dur.

Herkesin dediği gibi sadece bir kısayol (ve nerede umurunda değil) kullanmak isterseniz com.android.launcher.action.INSTALL_SHORTCUT kullanın. Yayın yapmak iç içe geçmiş amaçlara sahip olamayacağından bunu yapmak için bir uygulamaya veya bölüme ihtiyacınız olacaktır.

Belirli bir başlatıcıyla (ADW Launcher gibi) çalışıyorsanız, kısayol veritabanını kesebilirsiniz. Bu

adb shell sqlite3 /data/data/org.adw.launcher/databases/launcher.db "DELETE FROM favorites WHERE _id=1; INSERT INTO favorites VALUES(1,'MyApp','#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.example.app/.App;end',-100,0,2,3,1,1,0,-1,NULL,0,NULL,NULL,NULL,NULL,NULL);" 

Sen veritabanından yenilemek için başlatıcısı anlatmak gerekir (bu durumda [2, 3]) kısayol koordinatlarını belirten sağlayacaktır. Genellikle tek yol başlatıcıyı öldürmektir. Daha sonraki am sürümleri (ActivityManager kabuk komutu) bir paketi yeniden başlatmak için seçeneklere sahiptir, daha eski sürümler yoktur. Bu durumda küçük bir uygulama yazmak gerekir:

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
am.restartPackage("org.adw.launcher"); 
+0

Kod ile kısayolu, belirli bir lanuncher uygulamasına ve içindeki belirli bir etkinliğe oluşturmak istersek ne olur? –

+0

Yukarıdaki kodların tümü, belirli bir uygulama içindeki belirli bir etkinliğe işaret eder. Sadece ADW ile ilgili tecrübem var, diğer rampalar da bilgiyi bir yere, şüphesiz bir veritabanına kaydetmeli. – Renate

+0

Evet, bunun hakkında bir yazı yazdım. Burada: http://stackoverflow.com/questions/21394477/how-to-create-a-shortcut-of-an-app-on-a-specific-launcher-app. yorumlardan biri cevabı var. –

İlgili konular