【问题标题】:Security exception while calling bindAppWidgetId调用 bindAppWidgetId 时出现安全异常
【发布时间】:2011-04-01 00:54:44
【问题描述】:

在为 Android 开发启动器(主屏幕)应用程序时,我遇到了一个我不理解的安全异常。

  • 当调用 [bindAppWidgetId()][1] 方法来自 在我的启动器活动中,我得到 这个安全例外:

08-19 11:30:11.689: 错误/AndroidRuntime(6032): java.lang.SecurityException: bindGagetId appWidgetId=99 provider=ComponentInfo{com.android.music/com.android.music.MediaAppWidgetProvider}: 用户 10034 没有 android.permission.BIND_APPWIDGET。

我首先以为我忘记了清单中的 BIND_APPWIDGET 权限,但它确实存在。

android api 文档说明了这一点:

“您需要 APPWIDGET_LIST 允许。这个方法要使用 由 AppWidget 选择器。”

我尝试添加权限android.permission.APPWIDGET_LIST,但并没有解决问题。

另外,我从包含 AppWidgetPickActivity 代码的 android 源代码中查看了设置应用程序的清单:有一条特殊的行要求共享用户 ID:

"android:sharedUserId="android.uid.system"

会不会和我的问题有关?

如果有人有一个很棒的想法!

干杯, 洛朗

【问题讨论】:

标签: android android-widget homescreen launcher


【解决方案1】:

快速的 Google 搜索显示 android.permission.APPWIDGET_LIST 是一个可用的权限,即使它没有在 API 文档中列出。

【讨论】:

  • 谢谢马特,但我已经在我的清单中添加了这个。唉,它并没有解决我的安全问题......问题仍然存在。
  • 顺便说一句,你能引用说明它是可用权限的来源吗?
  • 绝对:androidzoom.com/android_applications/tools/… 抱歉回复晚了。
  • 在权限选项卡中,它列出了 android.permission.APPWIDGET_LIST。
【解决方案2】:

我找到了答案!

BindAppWidgetId() 故意不可用于应用程序! (安全问题)。

"android.permission.BIND_APPWIDGET 权限是系统权限。 你 只有在您的情况下才能获得该许可 软件包作为系统安装 包(安装在/system/app中 而不是 /data/app) 或签署你的应用程序 具有相同的证书 你的安卓图像。所以基本上这个 表示您只能使用此权限 如果您也是 您的平台/手机上的 android 图像。”

以下是此信息的链接:

http://groups.google.com/group/android-developers/browse_thread/thread/231245ba6d1e690f/047b9d3f776d7e54?lnk=gst&q=bindAppWidgetId#047b9d3f776d7e54

http://groups.google.com/group/android-developers/browse_thread/thread/f24e0f484a79d529/ef84188e8533a125?lnk=gst&q=bindAppWidgetId#ef84188e8533a125

【讨论】:

    猜你喜欢
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多