Su Android, come faccio a concedere a un LiveFolders il permesso richiesto della mia ContentProvider?
-
22-09-2019 - |
Domanda
Su Android, per un fornitore di contenuti che richiedono il permesso FINE_LOCATION, come faccio a creare un LiveFolder?
<provider
android:authorities="gpstracker"
android:name=".db.GPStrackingProvider"
android:permission="android.permission.ACCESS_FINE_LOCATION" >
</provider>
Il LiveFolder continua a bloccarsi in a com.android.launcher.LiveFolderAdapter.query(LiveFolderAdapter.java:58)
da un java.lang.SecurityException: Permission Denial
.
Continuo a cercare su come concedere l'autorizzazione LiveFolder, ma sono in grado di trovare questo.
Soluzione
Buona cosa Android essendo Open Source e tutti. Non facendo molti progressi con la concessione del permesso di LiveFolderAdapter ho verificato che il permesso che già aveva. LiveFolders è una parte del pacchetto di avvio. Questa è la fonte Android in packages/apps/Launcher/AndroidManifest.xml
.
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.BIND_APPWIDGET" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
Da lì ho pensato che il com.android.launcher.permission praticamente individua il Launcher. Ho finito per richiedere l'launcher.permission per le LiveFolders della mia ContentProvider.
<provider
android:authorities="gpstracker"
android:name=".db.GPStrackingProvider"
android:permission="android.permission.ACCESS_FINE_LOCATION" >
<path-permission android:path="/live_folders/tracks"
android:readPermission="com.android.launcher.permission.WRITE_SETTINGS" />
</provider>
Ha ottenuto l'endresult nel mio progetto all'indirizzo code.google .