2010-02-22 35 views
2

在Android上,對於需要FINE_LOCATION權限的內容提供者,如何創建LiveFolder?在Android上,如何授予LiveFolders我的ContentProvider所需的權限?

<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權限,但無法找到它。

回答

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。我最終要求爲我的contentprovider的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得到了endresult。