Domanda

Durante lo sviluppo di un'applicazione di avvio (Homescreen) per Android, sono venuto in un'eccezione di sicurezza che non capisco.

  • Quando si chiama il [BindAppWidgetId ()] [1] metodo dal nel mio Launcher Attività, ottengo questa eccezione di sicurezza:

Novembre 08-19: 30: 11,689: ERRORE / AndroidRuntime (6032): java.lang.SecurityException: bindGagetId appWidgetId = 99 = fornitore ComponentInfo {com.android.music / com.android.music.MediaAppWidgetProvider}: User 10034 non ha android.permission.BIND_APPWIDGET.

ho pensato che avevo dimenticato il permesso BIND_APPWIDGET nel mio manifesto, ma è sicuramente lì.

La documentazione API Android afferma questo:

  

"È necessario l'APPWIDGET_LIST   autorizzazione. Questo metodo deve essere usato   dal selettore AppWidget ".

Ho provato ad aggiungere l'autorizzazione android.permission.APPWIDGET_LIST, ma non risolve il problema.

Inoltre, ho guardato il manifesto dell'applicazione Impostazioni dalle fonti Android che contiene il codice AppWidgetPickActivity: c'è una linea speciale che chiede alla quota id utente:

  

"android: sharedUserId =" android.uid.system "

Potrebbe essere collegato al mio problema?

Se qualcuno ha un'idea che sarebbe grande!

Saluti, Laurent

È stato utile?

Soluzione

Ho trovato una risposta!

BindAppWidgetId () è volutamente non è disponibile per le applicazioni! (problemi di sicurezza).

  

"L'android.permission.BIND_APPWIDGET   il permesso è un sistema di autorizzazione.   si può solo ottenere che il permesso se il vostro   pacchetto è installato come sistema   pacchetto (installato in / system / app in   invece di / dati / app) o firmare app   con un certificato che è lo stesso di   l'immagine Android. Quindi, fondamentalmente questo   significa che è possibile utilizzare solo questa autorizzazione   Se anche tu sei il creatore del   immagine Android sulla vostra piattaforma / telefono ".

Ecco i link a queste informazioni:

http: // groups.google.com/group/android-developers/browse_thread/thread/231245ba6d1e690f/047b9d3f776d7e54?lnk=gst&q=bindAppWidgetId#047b9d3f776d7e54

http: // groups.google.com/group/android-developers/browse_thread/thread/f24e0f484a79d529/ef84188e8533a125?lnk=gst&q=bindAppWidgetId#ef84188e8533a125

Altri suggerimenti

Una rapida ricerca su Google rivela che android.permission.APPWIDGET_LIST è un permesso utilizzabile, anche se non è elencato nella documentazione API.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top