我試圖刪除使用contentResolver.delete()的書籤,並且因爲缺少權限而關閉了「com.android.broswer.permission.WRITE_HISTORY_BOOKMARKS「,但它在清單...Android:強制關閉缺少權限,位於清單中
這是清單(外<application></application>
)
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"></uses-permission>
<uses-permission android:name="com.android.broswer.permission.WRITE_HISTORY_BOOKMARKS"></uses-permission>
這是方法:
public void deleteBookmark(Cursor cur, long id) {
getContentResolver().delete(BOOKMARKS_URI, "_id = " + id, null);
}
(忽略未使用的遊標)
,這是logcat的:
E/AndroidRuntime(26750): FATAL EXCEPTION: main
E/AndroidRuntime(26750): java.lang.SecurityException: Permission Denial: writing
com.android.browser.BrowserProvider uri content://browser/bookmarks from pid=26
750, uid=10001 requires com.android.browser.permission.WRITE_HISTORY_BOOKMARKS
E/AndroidRuntime(26750): at android.os.Parcel.readException(Parcel.java:1
260)
E/AndroidRuntime(26750): at android.database.DatabaseUtils.readExceptionF
romParcel(DatabaseUtils.java:160)
E/AndroidRuntime(26750): at android.database.DatabaseUtils.readExceptionF
romParcel(DatabaseUtils.java:114)
E/AndroidRuntime(26750): at android.content.ContentProviderProxy.delete(C
ontentProviderNative.java:472)
E/AndroidRuntime(26750): at android.content.ContentResolver.delete(Conten
tResolver.java:675)
E/AndroidRuntime(26750): at com.deleteBookmark(.java:167)
E/AndroidRuntime(26750): at com.onContextItemSe
lected(.java:138)
E/AndroidRuntime(26750): at android.app.Activity.onMenuItemSelected(Activ
ity.java:2199)
E/AndroidRuntime(26750): at com.android.internal.policy.impl.PhoneWindow$
ContextMenuCallback.onMenuItemSelected(PhoneWindow.java:2744)
E/AndroidRuntime(26750): at com.android.internal.view.menu.MenuItemImpl.i
nvoke(MenuItemImpl.java:143)
E/AndroidRuntime(26750): at com.android.internal.view.menu.MenuBuilder.pe
rformItemAction(MenuBuilder.java:855)
E/AndroidRuntime(26750): at com.android.internal.view.menu.MenuDialogHelp
er.onClick(MenuDialogHelper.java:137)
E/AndroidRuntime(26750): at com.android.internal.app.AlertController$Aler
tParams$3.onItemClick(AlertController.java:875)
E/AndroidRuntime(26750): at android.widget.AdapterView.performItemClick(A
dapterView.java:284)
E/AndroidRuntime(26750): at android.widget.ListView.performItemClick(List
View.java:3382)
E/AndroidRuntime(26750): at android.widget.AbsListView$PerformClick.run(A
bsListView.java:1696)
E/AndroidRuntime(26750): at android.os.Handler.handleCallback(Handler.jav
a:587)
E/AndroidRuntime(26750): at android.os.Handler.dispatchMessage(Handler.ja
va:92)
E/AndroidRuntime(26750): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(26750): at android.app.ActivityThread.main(ActivityThrea
d.java:4627)
E/AndroidRuntime(26750): at java.lang.reflect.Method.invokeNative(Native
Method)
E/AndroidRuntime(26750): at java.lang.reflect.Method.invoke(Method.java:5
21)
E/AndroidRuntime(26750): at com.android.internal.os.ZygoteInit$MethodAndA
rgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime(26750): at com.android.internal.os.ZygoteInit.main(Zygot
eInit.java:626)
E/AndroidRuntime(26750): at dalvik.system.NativeStart.main(Native Method)
任何想法,爲什麼它說,拒絕許可時,它顯然在清單?也許我的代碼是問題?
是的,但對於Froyo以外的操作系統版本,我正在使用Froyo 2.2 SDK 8 ...讀取權限的工作原理...因此,奇怪的是WRITE不是。 :\ – 2010-09-18 10:49:15
此外,我的添加書籤功能很好......我想它使用WRITE權限。 – 2010-09-18 10:50:42
可能是因爲任何應用程序都不能刪除存儲在瀏覽器中的書籤,所以Android可能已經阻止了爲第三方應用程序添加書籤的寫權限。一些安全約束。然而,閱讀或甚至添加新的書籤不會有太大的傷害...... – DeRagan 2010-09-18 11:02:29