Soru Kurulu paketler için amaç filtrelerini listeleme


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? 


18
2018-01-06 20:25


Menşei




Cevaplar:


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.


13
2018-01-06 20:57





"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 !!


11
2017-07-21 07:20



Kontrol edeceğim. Teşekkürler - market.android.com/... - Michael Levy
Sonunda bunu kontrol etmek için geldi. Tekrar teşekkürler. - Michael Levy
Ben sadece bazı ortak amaçları listeler, ancak uygulamalarda kullanılanları değil düşünüyorum. - android developer
Merhaba Siddharth, harika bahşiş için teşekkür ederim. O zaman, soruya doğru cevap verdiğimi düşündüm. Şimdi tekrar okudum, cevabımı doğru cevapla değiştireceğim. - Someone Somewhere


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


1
2017-12-02 14:52



Güzel cevap, ama filter Kısmen açık değildi. Yolun tamamını bir şeye benzetmelisin. "com.android.chrome/.". - not2qubit
yok dump benim android 4 kurulum seçeneği. dumpsys package r Bunun yerine benim için çalıştı. - eadmaster