Ich arbeite derzeit an einem Projekt, das einige spezifische Abfrage von einer bestimmten App auf Android-Kontaktbücher herausfiltern wird. Ich frage mich, wie ich herausfinden kann, welche App auf den Kontaktanbieter zugreift? Ich habe mir die API-Referenzen angesehen, aber es sieht so aus, als ob es nur Methoden gibt, den Client des Content-Providers zu erwerben, anstatt die App zu erwerben, die nach dem Zugriff auf die Daten fragt. Wenn jemand das ein bisschen erklären könnte, wird es große Hilfe sein! Danke im Voraus!Android: Wie finde ich den Client von Content Resolver
1
A
Antwort
1
Von Ihrem ContentProvider
können Sie den Paketnamen der App erhalten Sie wie folgt aufrufen:
@NonNull
private static Collection<String> getCallingPackages(Context context) {
int callingUid = Binder.getCallingUid();
if (callingUid == 0) {
return Collections.emptyList();
}
String[] packages = context.getPackageManager().getPackagesForUid(callingUid);
return new ArrayList<>(Arrays.asList(packages));
}
Sie können dann prüfen, ob das Paket (e) auf einer Whitelist/Blacklist, die Sie erhalten.
+0
Danke die Idee funktioniert – user7153368
Verwandte Themen
- 1. Wissen über Content Resolver in Android
- 2. Wie filtern Sie die Ergebnisse von Content Resolver in Android?
- 3. Android Content Resolver löschen - Update-Status
- 4. Physikalischen Pfad vom Content-Resolver abrufen
- 5. Android: Wo finde ich den RadioButton Drawable?
- 6. Wo finde ich kostenloses Content-Hosting?
- 7. Wie finde ich den Wert von $ CATALINA_HOME?
- 8. Wie finde ich den Offset von st_link?
- 9. Wie finde ich den Dateinamen einer Bibliothek über den Bibliotheksnamen?
- 10. Google OAuth Client mit Angular/Ionic: Wie finde ich den redirect_uri?
- 11. Android: Wie finde ich den Namen des verbundenen Bluetooth-Geräts?
- 12. Wie finde ich den Pfad zum NDK?
- 13. Wie finde ich den Bildschirmstatus auf einem Android-Gerät?
- 14. Wie finde ich den Pfad der Datenbankdatei in Android Emulator?
- 15. (SBT) Wie kann man den Standard-Resolver deaktivieren und nur den firmeninternen Resolver verwenden?
- 16. Wie bekomme ich den Namen der Resolver-Klasse in Autofac?
- 17. Wie funktionieren "transitive Resolver" mit SBT?
- 18. Verwendung von Content Resolver in eine statische Methode als Argument übergeben
- 19. Wo finde ich die Absturzhistorie von Android
- 20. Wie finde ich die Standardschriftarten auf Android?
- 21. Wie finde ich den Dateisystemtyp in Python
- 22. Zeigen Sie die Kontakte in der Sortierreihenfolge ContactsContract.Contacts von Content Resolver
- 23. Wie finde ich den Standort des Benutzers?
- 24. Wie finde ich den PHP STDIN Eingabedatentyp
- 25. Wo finde ich das IBM FileNet Content Engine-Abonnementprotokoll?
- 26. Wie finde ich den Speicherort des Scratchpuffers?
- 27. Angular2 Daten von CanActivate Guard an Resolver Resolver übergeben?
- 28. Wo finde ich den Quellcode von CastButtonFactory
- 29. Android App Content Host
- 30. Wie finde ich den Systemtyp mit Python?
Ein 'ContentResolver' hat keinen" Client ", zumindest was die Verwendung des Begriffs angeht. – CommonsWare
Ich habe versucht zu sagen, dass die App Content Resolver aufruft. Gibt es einen Namen dafür? – user7153368
Ich würde das den Client des 'ContentProvider' nennen. – CommonsWare