Android权限拒绝:Bind_RemoteViews权限

7

当我在AppWidgetProvider类的onReceive或onUpdate中启动服务时,我一直收到这个错误。

09-15 11:54:04.096: WARN/ActivityManager(1318): Permission Denial: Accessing service ComponentInfo{com.fttech.gameIT/com.fttech.StackWidgetService} from pid=1318, uid=1000 requires android.permission.BIND_REMOTEVIEWS

我已在我的Android清单文件中声明了权限。

但是它仍然给出这个错误信息。

我做错了什么吗?

以下是我的代码样例:

@Override
public void onReceive(Context context, Intent intent){
    AppWidgetManager.getInstance(context);

    intent = new Intent(context, StackWidgetService.class);
    context.startService(intent);

    super.onReceive(context, intent);
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){

    super.onUpdate(context, appWidgetManager, appWidgetIds);
    Intent intent = new Intent(context, StackWidgetService.class);
    context.startService(intent);
}

编辑:我已经在我的清单中声明了它。

这是我仍然得到的东西...

09-15 12:13:03.818: WARN/ActivityManager(1318): Permission Denial: Accessing service ComponentInfo{com.fttech/com.fttech.StackWidgetService} from pid=1318, uid=1000 requires android.permission.BIND_REMOTEVIEWS
09-15 12:13:03.864: WARN/ActivityManager(1318): Permission Denial: Accessing service ComponentInfo{com.fttech/com.fttech.StackWidgetService} from pid=1318, uid=1000 requires  android.permission.BIND_REMOTEVIEWS
09-15 12:13:03.872: WARN/ActivityManager(1318): finishReceiver called but no pending broadcasts
09-15 12:13:03.919: WARN/WidgetAidService(21261): BroadcastReceiver onReceive called
09-15 12:13:03.919: WARN/ActivityManager(1318): Permission Denial: Accessing service ComponentInfo{com.fttech/com.fttech.StackWidgetService} from pid=1318, uid=1000 requires android.permission.BIND_REMOTEVIEWS

编辑:清单

<uses-permission android:name="android.permission.BIND_REMOTEVIEWS"></uses-permission>

    <service android:name="StackWidgetService"
      android:enabled="true"
       />

我的清单文件中声明了权限和服务。


你的代码是在尝试什么?你是想将它用于其他应用程序或类似的东西吗? - Lalit Poptani
2个回答

6
尝试将您的权限放在服务标记内:
<application>
    ...
    <service
        android:name=".StackWidgetService"
        android:exported="false"
        android:permission="android.permission.BIND_REMOTEVIEWS" />
</application>

此外,类名前的点很重要,因为它是一个快捷方式(这样您就不必编写完全限定的类名),而android:enabled属性默认为true。


0

我也遇到过这个问题,

幸运的是,在第一次添加权限后的项目三个月后才出现了这个问题。

SDK 中一定有错误,因为它明确告诉我“这是一个系统权限”,并且不允许我通过 Eclipse 运行我的项目。然而,通过 ant 构建,它可以正常构建。更重要的是,在清理和构建项目之后,它决定它并不是一个系统权限,一切都很好。

希望你现在的错误已经消失了,但对于其他人来说,如果几次清理和重建可以解决问题,那么可以安全地忽略它(据我所知)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接