首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >requestPinAppWidget在一些不常见情况下的应用

requestPinAppWidget在一些不常见情况下的应用
EN

Stack Overflow用户
提问于 2020-09-27 12:46:00
回答 1查看 308关注 0票数 1

从API级别26开始,应用程序就可以请求将一个应用程序部件固定在当前的启动程序上。作为开发人员,这让我们有机会在自己的应用程序中提出这样的请求。然而,文档中写着"https://developer.android.com/reference/android/appwidget/AppWidgetManager#requestPinAppWidget“,有时当在当前的启动程序上没有足够空间的小部件时,调用者应用程序也不会得到任何响应。

如何区分这两种情况?我可以使用什么回调函数吗?有什么办法,我可以得到多少空间,在目前的发射器在我的应用程序?

EN

回答 1

Stack Overflow用户

发布于 2022-03-08 07:17:09

代码语言:javascript
复制
 private fun pickWidget()
    {
        
        val component = ComponentName(applicationContext,MyWidget::class.java)
        val manager = AppWidgetManager.getInstance(applicationContext)
        val widgetId = (1..999999).random()
        val intent = Intent(applicationContext,MyReceiver::class.java)
        val b = Bundle()
        intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,widgetId)
        val successCallback = PendingIntent.getBroadcast(applicationContext,101,intent,PendingIntent.FLAG_UPDATE_CURRENT)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            manager.requestPinAppWidget(component,b,successCallback)
        }

    }


class MyReceiver : BroadcastReceiver() {

    override fun onReceive(context: Context, intent: Intent) {
        Log.e(TAG, "onReceive: ")
        val b= intent.extras
        b?.let {
        val widgetId = b.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,AppWidgetManager.INVALID_APPWIDGET_ID)
        if(widgetId!=AppWidgetManager.INVALID_APPWIDGET_ID) {

          //if widget is placed succssfully
        }

        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64088622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档