Android的权限拒绝:广播意图 [英] Android Permission Denial: broadcasting Intent

查看:287
本文介绍了Android的权限拒绝:广播意图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我真的不知道什么是错的,但我如果部件是由系统更新通过APPWIDGET_UPDATE它抛出以下异常。我试了几件事情,出口接收器(真/假),我试图在模拟器和真正的手机,却是一样的。我加了几个意图过滤器,但没有奏效。


I really do not know what is wrong, but my if widget is update by system by "APPWIDGET_UPDATE" it throws following exception. I tried several things, exporting receiver (true/false), I tried it on emulators and real phones, but it is same. I added several intent-filters, but it did not work.

11-06 20:10:10.279: W/ActivityManager(61): Permission denied: checkComponentPermission() reqUid=1000
11-06 20:10:10.279: W/ActivityManager(61): Permission Denial: broadcasting Intent { act=android.appwidget.action.APPWIDGET_UPDATE (has extras) } from com.ency.easychange (pid=1196, uid=10034) requires null due to receiver com.android.settings/com.android.settings.widget.SettingsAppWidgetProvider

我的AppWidgetProvider只声明了,因为我想消灭的可能性,但例外的是前抛出ExchangeRateWidgetProvider.onReceive()之称。

public class ExchangeRateWidgetProvider extends AppWidgetProvider {
    public static final String tag = "ExchangeRateWidgetProvider"; 

        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager,
                int[] appWidgetIds) {

        }   
}

我的清单:

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="15" />

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

<!--  TODO: Remove, only for traces  -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

<application
    android:icon="@drawable/ic_launcher_main"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".EasyChange"
        android:label="@string/title_activity_easy_change" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>


    <service android:name=".ExchangeRateWidgetService"
             android:exported="true">
        <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <action android:name="android.appwidget.action.APPWIDGET_ENABLED" />
        </intent-filter>        
    </service>


    <receiver
        android:name=".ExchangeRateWidgetProvider"
        android:label="@string/exchange_rate_widget_name"
        android:exported="true">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            <action android:name="android.intent.action.MAIN" />
        </intent-filter>

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

   <activity
        android:name=".WidgetConfigSmall"
        android:label="@string/title_activity_widget_config_small"
        android:theme="@android:style/Theme.Holo.Dialog"
        android:excludeFromRecents="true"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
        </intent-filter>
    </activity>

</application>

我AP preciate,如果你可以去看看...

I appreciate if you can take a look ...

推荐答案

您的问题就出在你的Java code,在那里你试图在某处的发送的的安卓.appwidget.action.APPWIDGET_UPDATE 播出。这是由操作系统进行广播,而不是应用程序,这是什么权限拒绝左右。

Your problem lies somewhere in your Java code, where you are attempting to send the android.appwidget.action.APPWIDGET_UPDATE broadcast. That is to be broadcast by the OS, not by apps, and that is what the Permission Denial is about.

这篇关于Android的权限拒绝:广播意图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆