2
我真的不知道什麼是錯誤的,但我的小工具由系統更新「APPWIDGET_UPDATE」它拋出以下異常。我嘗試了幾件事情,導出接收器(真/假),我嘗試了仿真器和真正的手機,但它是一樣的。我添加了幾個intent-filters
,但它沒有工作。Android權限拒絕:廣播意圖
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>
我很欣賞,如果你可以去看看...
嗯,你是對的!我試圖從小部件的配置活動發送更新。 因此,應用程序不允許發送'ACTION_APPWIDGET_UPDATE',是不是? – Ency
@Ency:如果您嘗試將它發送到整個系統,則不是。如果您試圖在自己的應用程序小部件中觸發更新,則可以使用'Intent'上的'setClass()'將其限制爲您自己的'AppWidgetProvider'。 – CommonsWare
太棒了,那是我需要的部分。謝謝! – Ency