问题:有没有办法以编程方式启用我用我的应用程序提供的一些主屏幕小部件?例如,拥有“高级”小部件并仅在付款后才能访问它?
正如Android docs所说,应该在清单中添加一个广播接收器,告诉系统应用程序附带了一个小部件:
<receiver android:name="ExampleAppWidgetProvider" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <Meta-data android:name="android.appwidget.provider" android:resource="@xml/example_appwidget_info" /> </receiver>
解决方法
您可以在< receiver>上使用android:enabled =“false”清单中app小部件的元素,然后使用PackageManager和setComponentEnabledSetting()在用户执行某些操作(例如,支付)时在运行时启用它.
但是,在主屏幕意识到有新的潜在应用小部件提供商之前,可能需要重新启动.