Android:以编程方式启用/禁用应用小部件

问题:有没有办法以编程方式启用我用我的应用程序提供的一些主屏幕小部件?例如,拥有“高级”小部件并仅在付款后才能访问它?

正如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()在用户执行某些操作(例如,支付)时在运行时启用它.

但是,在主屏幕意识到有新的潜在应用小部件提供商之前,可能需要重新启动.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...