【问题标题】:long press quick setting tile in android在android中长按快速设置磁贴
【发布时间】:2017-08-01 01:57:47
【问题描述】:

我是安卓开发新手。尝试创建磁贴服务,但无法覆盖默认的长按操作。

为此,我有一个名为 QSTileService 的类,它扩展了 TileService,我希望我的图块根据您是长按还是长按来执行不同的操作。到目前为止,我发现按钮是实现 OnLongClickListener 接口并在 onLongClick 方法中填写您想要执行的操作,但我不确定如何使用快速设置磁贴来执行此操作?

任何帮助将不胜感激

【问题讨论】:

  • 按照 google codelab 教程了解 Tile 服务:codelabs.developers.google.com/codelabs/…
  • 我浏览了教程,但我认为它没有解决如何修改默认的长按操作。我的磁贴是一个计数器,我希望它增加点击次数并在长按时重置,但我无法找到一种方法来更改长按行为以使其重置,它总是只是进入应用程序设置页面

标签: android service long-press


【解决方案1】:

根据Documentation:

默认情况下,长按您的快速设置磁贴会转到您应用的信息屏幕。您可以通过将intent-filter 添加到您的一项活动中来覆盖该行为,如下所示:

<intent-filter>
    <action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES"/>
</intent-filter>

【讨论】:

  • 是否可以让长按磁贴做类似广播的事情,我可以在其中创建一个广播接收器来调用一个方法?我的目标是通过调用方法而不是打开新活动来长时间按下磁贴来重置计数器
  • 我不确定您是否可以使用相同的意图过滤器在后台发送广播或启动服务。但是您可以启动一个虚拟透明活动(或作为对话框的活动)并在从 onCreate 方法本身广播您的事件后立即完成()该活动。但是使用此快速设置面板将关闭。您需要再次拖动才能看到面板。
猜你喜欢
  • 1970-01-01
  • 2019-03-19
  • 1970-01-01
  • 1970-01-01
  • 2017-01-04
  • 1970-01-01
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
相关资源
最近更新 更多