Question

On Android, for a content provider that requires the FINE_LOCATION permission, how do I create a LiveFolder?

<provider 
   android:authorities="gpstracker" 
   android:name=".db.GPStrackingProvider" 
   android:permission="android.permission.ACCESS_FINE_LOCATION" >
</provider>

The LiveFolder keeps crashing in the at com.android.launcher.LiveFolderAdapter.query(LiveFolderAdapter.java:58) from a java.lang.SecurityException: Permission Denial.

I keep on searching on how to grant the LiveFolder permission, but am unable to find this.

Was it helpful?

Solution

Good thing Android being Open Source and all. Not making much headway with granting the LiveFolderAdapter permission I checked out which permission it already had. LiveFolders is a part of the Launcher package. This is in the Android source 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" />

From there I figured that the com.android.launcher.permission pretty much singles out the Launcher. I ended up requiring the launcher.permission for the LiveFolders of my 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>

Got the endresult in my project at code.google.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top