views:

417

answers:

1

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.

+1  A: 

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.

Rene

related questions