清单文件没有给予应有的权限.在Manifest中给出的权限被拒绝

Mar*_*ian 0 android

我正在尝试为BBC新闻制作一个自动收报机小部件,其中大部分工作都在昨晚完美运行,但我遇到了一些问题,使得配置活动的权限正确无误.在重新编写我的Manifest后,一切都没有用,尽管我完全应该知道它应该如何.

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.news.bbcwidget"
    android:versionCode="1"
    android:versionName="101">

    <application
        android:label="@string/app_name"
        android:icon="@drawable/logo"
        android:permission="android.permission.INTERNET"
        android:persistent="true"
        android:debuggable="true"
        android:enabled="true">

        <activity
            android:name="BBCWidgetConfig"
            android:permission="android.permission.INTERNET">

            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
            </intent-filter>
        </activity>

        <activity
            android:name="Launcher"
            android:permission="android.permission.INTERNET" />

        <receiver
            android:name="BBCNewsWidget"
            android:permission="android.permission.INTERNET">

            <service
                android:permission="android.permission.INTERNET"
                android:name="BBCNewsService" />

            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
                android:resource="@xml/bbcnews"
                android:name="android.appwidget.provider" />

        </receiver>

        <service android:name="BBCNewsWidget$BBCNewsService" />

    </application>

</manifest> 
Run Code Online (Sandbox Code Playgroud)

以下是收到的错误的关键部分:

06-19 20:06:34.339:WARN/ActivityManager(58):权限拒绝:从pid = 58访问服务ComponentInfo {com.news.bbcwidget/com.news.bbcwidget.BBCNewsWidget $ BBCNewsService},uid = 1000需要android. permission.INTERNET
06-19 20:06:34.529:ERROR/AndroidRuntime(247):java.lang.RuntimeException:无法启动接收器com.news.bbcwidget.BBCNewsWidget:java.lang.SecurityException:不允许启动服务Intent { cmp = com.news.bbcwidget/.BBCNewsWidget $ BBCNewsService}未经许可android.permission.INTERNET
06-19 20:06:34.529:ERROR/AndroidRuntime(247):引起:java.lang.SecurityException:不允许启动服务Intent {cmp = com.news.bbcwidget/.BBCNewsWidget $ BBCNewsService}没有权限android.permission.INTERNET
06-19 20:10:51.558:WARN/ActivityManager(58):权限拒绝:从android(pid)广播Intent {act = android.appwidget.action.APPWIDGET_DELETED cmp = com.news.bbcwidget/.BBCNewsWidget(has extras)} = 113,uid = 10000)需要android.permission.INTERNET,因为接收器com.news.bbcwidget/com.news.bbcwidget.BBCNewsWidget
06-19 20:10:51.558:WARN/ActivityManager(58):权限拒绝:广播意图来自android(pid = 113,uid = 10000)的{act = android.appwidget.action.APPWIDGET_DISABLED cmp = com.news.bbcwidget/.BBCNewsWidget}需要android.permission.INTERNET,因为接收器com.news.bbcwidget/com.news .bbcwidget.BBCNewsWidget

它之前提供了"糟糕的过程"错误,但现在似乎停止了.根据我的理解,Manifest将android.permission.INTERNET提供给我的所有服务,活动和AppWidgetProvider,所以我不明白为什么会这样.以前曾经工作过!

干杯!

Pen*_*m10 6

<uses-permission
        android:name="android.permission.INTERNET"></uses-permission>
Run Code Online (Sandbox Code Playgroud)

到您的清单节点而不是活动

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.news.bbcwidget"
      android:versionCode="1"
      android:versionName="101">
<application 
....
</application>
<uses-permission
        android:name="android.permission.INTERNET"></uses-permission>
</manifest> 
Run Code Online (Sandbox Code Playgroud)