在为Android开发启动器(Homescreen)应用程序时,我遇到了一个我不明白的安全例外。
08-19 11:30:11.689:ERROR / 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源代码中的Settings应用程序的清单:有一条要求共享用户ID的特殊行:
“机器人:sharedUserId =” android.uid.system“
这可能与我的问题有关吗?
如果有人有想法会很棒!
干杯, 劳伦
答案 0 :(得分:6)
我找到了答案!
BindAppWidgetId()故意不适用于应用程序! (安全问题)。
“android.permission.BIND_APPWIDGET 权限是系统权限。 您 如果你的话只能得到那个许可 包作为系统安装 包(安装在/ system / app中 替代/数据/应用程序)或签署您的应用程序 与证书相同的证书 你的android图片。基本上这个 表示您只能使用此权限 如果你也是的创造者 你平台/手机上的android图片。“
以下是此信息的链接:
答案 1 :(得分:0)
快速Google搜索显示android.permission.APPWIDGET_LIST
是可用的权限,即使它未在API文档中列出。