从ACTION_QS_TILE_PREFERENCES

时间:2018-06-20 18:52:47

标签: android

我的应用程序中有多个“快速”图块,它们都有不同的作用。我面临的问题是我希望所有快速平铺都有长按操作以配置有关该平铺的特定设置,因此我在意图过滤器中添加了android.service.quicksettings.action.QS_TILE_PREFERENCES,活动。

问题是,似乎没有办法知道长按哪个图块,而实际上是长按了一个图块。

根据documentation ,也许应该有一种解决此问题的方法

  

此意图还可以定义一个Intent.EXTRA_COMPONENT_NAME值,以指示导致首选项打开的ComponentName。

我以为这将返回实现TileService的类,但是调用intent.getStringExtra(Intent.EXTRA_COMPONENT_NAME)却一无所获。

我误解了文档吗? Intent.EXTRA_COMPONENT_NAME应该给什么?有什么办法可以识别长按的瓷砖?

1 个答案:

答案 0 :(得分:0)

EXTRA_COMPONENT_NAME指向ComponentName对象,而不是字符串。

因此,您需要使用getParcelableExtra()来提取ComponentName对象:

ComponentName qsTile = intent.getParcelableExtra(Intent.EXTRA_COMPONENT_NAME);