首页 文章

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

提问于
浏览
0

我正在尝试为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>

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

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:不允许启动service Intent {cmp = com.news.bbcwidget / .BBCNewsWidget $ BBCNewsService}未经许可android.permission.INTERNET 06-19 20:10:51.558:WARN / ActivityManager(58):权限拒绝:广播Intent {act = android.appwidget .action.APPWIDGET_DELETED cmp = com.news.bbcwidget / .BBCNewsWidget(has extras)}来自android(pid = 113,uid = 10000)需要android.permis sion.INTERNET由于接收器com.news.bbcwidget / com.news.bbcwidget.BBCNewsWidget 06-19 20:10:51.558:WARN / ActivityManager(58):权限拒绝:广播Intent {act = android.appwidget.action.APPWIDGET_DISABLED来自android(pid = 113,uid = 10000)的cmp = com.news.bbcwidget / .BBCNewsWidget}需要android.permission.INTERNET,因为接收器com.news.bbcwidget / com.news.bbcwidget.BBCNewsWidget

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

干杯!

1 回答

  • 6

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

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

    <?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>
    

相关问题