Telefonuma yüklenen paketlerin etkinlik amacı filtrelerini listelemek istiyorum. Bu sadece bir öğrenme deneyimi için, örtük niyetlerle hangi uygulamaların başlatılabileceğini ve amaç filtrelerinin nasıl ayarlandığını anlamak istiyorum.
Google, sağladıkları uygulamalar için bir tablo sağlar. http://developer.android.com/guide/appendix/g-app-intents.html. Diğer uygulamalar için benzer bir liste oluşturmak istiyorum.
PackageManager'ı kullanabilir ve bu bilgiyi kod içinde kullanabilir miyim? Mevcut bir uygulamayı bilen var mı? İstediğimi yapmak için bana mevcut bir örneğe işaret eden var mı?
Maalesef bu, benzer soruların kopyasıysa Bir uygulamanın etkinlik ve amaç filtrelerini listelemek mi istiyorsunuz? ve Android - Kullanılabilir tüm amaç filtrelerinin bir listesi nasıl alınır?
AFAIK, belirli bir uygulamanın alabileceği tüm amaçları listelemenin bir yolu yoktur. Bununla birlikte, kendiniz de bazı amaçlarını yaratarak benzer (geniş kapsamlı olmasa da) bilgileri elde edebilirsiniz. Paketleme yöneticisiHangi amaçla kurulduğunu görmek için queryIntentActivities, queryIntentservices ve queryBroadcastReceivers.
"ManifestViewer" uygulamasını tavsiye edeyim. Yüklenen her uygulama için amaçlarını listeler.
https://play.google.com/store/apps/details?id=jp.susatthi.ManifestViewer
İyi günler !!
Nougat 7.0'da Nexus 6 ile aşağıdaki komutu kullanarak tüm amaçların listesini aldım:
adb shell pm dump * | grep ' filter' | cut -d ' ' -f 12 | sort | uniq
- İlk önce komut, cihazınıza bir kabuk açar ve
PackageManager her paketin dökümü.
- Sonra bu çıkışı
grep sadece 'filtre' kelimesiyle satırları seçer.
- Sonra bu çıkışı
cut Bu satırdaki herhangi bir alanın 12. konumunda bulunan metni verir.
- Sonra bu çıkışı
sort A'dan Z'ye kadar listeyi sıralar.
- Sonra bu çıkışı
uniq yinelenen Intents kadar temizler.
YMMV - bunları bir seferde deneyin. İstediğiniz sonuçları gördüğünüz sırada bir sonraki boruyu ekleyin. Önceki sürümleri olup olmadığından emin değil
adb size farklı sayıda alan verecek
cut, Örneğin.
Ve sonuçların Chrome gibi tek bir pakette olmasını istiyorsanız, şunları kullanabilirsiniz:
adb shell pm dump com.android.chrome | grep ' filter' | cut -d ' ' -f 12 | sort | uniq