На Android, как я могу предоставить LiveFolders необходимое разрешение моего ContentProvider? - PullRequest
2 голосов
/ 22 февраля 2010

В Android для провайдера контента, которому требуется разрешение FINE_LOCATION, как мне создать LiveFolder?

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

LiveFolder продолжает сбой в com.android.launcher.LiveFolderAdapter.query(LiveFolderAdapter.java:58) от java.lang.SecurityException: Permission Denial.

Я продолжаю искать способ предоставления разрешения LiveFolder, но не могу его найти.

1 Ответ

2 голосов
/ 23 февраля 2010

Хорошо, что Android является открытым исходным кодом и все такое. Не добившись большого успеха с предоставлением разрешения LiveFolderAdapter, я проверил, какое разрешение у него уже было. LiveFolders является частью пакета Launcher. Это в источнике Android в 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" />

Оттуда я понял, что com.android.launcher.permission в значительной степени выделяет Launcher. В итоге мне потребовалось разрешение launcher.permission для LiveFolders моего контент-провайдера.

<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>

Получил конечный результат в моем проекте на code.google .

...