Sicherheitsausnahme während bindAppWidgetId Aufruf
-
29-09-2019 - |
Frage
Während ein Launcher (Homescreen) Anwendung für Android zu entwickeln, ich habe eine Sicherheitsausnahme kommen in die ich nicht verstehe.
- Wenn der Aufruf [BindAppWidgetId ()] [1] Verfahren aus In meiner Launcher Aktivität, erhalte ich diese Sicherheitsausnahme:
November 08-19: 30: 11,689: ERROR / Android Runtime (6032): java.lang.SecurityException: bindGagetId appWidgetId = 99 provider = ComponentInfo {com.android.music / com.android.music.MediaAppWidgetProvider}: User 10034 nicht android.permission.BIND_APPWIDGET haben.
Ich dachte zuerst hatte ich die BIND_APPWIDGET Erlaubnis in meinem Manifest vergessen, aber es ist es auf jeden Fall.
Die Androide api-Dokumentation besagt dies:
"Sie müssen die APPWIDGET_LIST Genehmigung. Diese Methode ist verwendet werden soll durch den AppWidget Picker. "
Ich habe versucht, die Erlaubnis android.permission.APPWIDGET_LIST, hinzufügen, aber es das Problem nicht lösen.
Außerdem habe ich im Manifest der Einstellungen Anwendung aus der Android Quellen gesucht, die den AppWidgetPickActivity Code enthält: es gibt eine spezielle Linie, die Aktie Benutzer-ID fragt:
"android: sharedUserId =" android.uid.system "
Könnte es zu meinem Problem zusammenhängen?
Wenn jemand eine Idee, die toll! Würde
Cheers, Laurent
Lösung
Ich habe eine Antwort gefunden!
BindAppWidgetId () ist absichtlich nicht für Anwendungen zur Verfügung! (Sicherheitsprobleme).
"Die android.permission.BIND_APPWIDGET Erlaubnis ist ein System Erlaubnis. Sie nur kann, dass die Erlaubnis erhalten, wenn Ihr Paket wird als ein System installiert Paket (in / System installiert / app in anstelle von / data / app) oder melden Sie App mit einem Zertifikat, das das gleiche wie Ihr Android-Bild. Also im Grunde dieses nur bedeutet, können Sie diese Berechtigung verwenden wenn Sie sind auch der Schöpfer der android Bild auf Ihrer Plattform / Telefon. "
Hier sind die Links zu diesen Informationen:
Andere Tipps
Eine schnelle Google-Suche zeigt, dass android.permission.APPWIDGET_LIST
eine brauchbare Erlaubnis ist, auch wenn es nicht in der API-Dokumentation aufgeführt ist.