我的应用程序中有多个“快速”图块,它们都有不同的作用。我面临的问题是我希望所有快速平铺都有长按操作以配置有关该平铺的特定设置,因此我在意图过滤器中添加了android.service.quicksettings.action.QS_TILE_PREFERENCES
,活动。
问题是,似乎没有办法知道长按哪个图块,而实际上是长按了一个图块。
根据documentation ,也许应该有一种解决此问题的方法
此意图还可以定义一个Intent.EXTRA_COMPONENT_NAME值,以指示导致首选项打开的ComponentName。
我以为这将返回实现TileService
的类,但是调用intent.getStringExtra(Intent.EXTRA_COMPONENT_NAME)
却一无所获。
我误解了文档吗? Intent.EXTRA_COMPONENT_NAME
应该给什么?有什么办法可以识别长按的瓷砖?
答案 0 :(得分:0)
EXTRA_COMPONENT_NAME
指向ComponentName
对象,而不是字符串。
因此,您需要使用getParcelableExtra()
来提取ComponentName
对象:
ComponentName qsTile = intent.getParcelableExtra(Intent.EXTRA_COMPONENT_NAME);