2

在 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 权限,但找不到这个。

4

1 回答 1

2

好东西 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。我最终需要我的内容提供者的 LiveFolders 的 launcher.permission。

<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获得了我的项目的最终结果。

于 2010-02-23T18:19:01.500 回答