【需求开发】【Android 13新特性】通过StatusBarManager.requestAddTileService()方法提示用户添加TileService

本文记录了Android 14环境下,针对Dolby Atmos应用,如何在用户未添加TileService时弹出提示,以及如何监听和管理TileService在QuickSettings中的状态。通过StatusBarManager.requestAddTileService()方法和SharedPreferences实现需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:此文章仅作为本人记录日常学习使用,若有存在错误或者不严谨得地方欢迎指正。

一、需求背景

需求来源:Dolby Atmos应用二次开发的客户需求
Android版本:Android 14(高通平台)
需求说明:为Dolby Atmos应用新增加一个TileService的提醒功能,当用户打开Dolby Atmos并且没有添加TileService的时候,提示用户是否要将该应用的TileService添加到QucikSettings中。
需求分解:
①为Dolby Atmos应用新增加一个TileService的提醒功能,当用户打开Dolby Atmos并且没有添加TileService的时候,提示用户是否要将该应用的TileService添加到QucikSettings中。
②当Dolby Atmos的TileService已经被用户手动添加到QucikSettings中时,点击按钮时不会再弹出提示框要求用户添加TileService,只有当TileService没有被添加到QucikSettings中时,点击按钮才会调用requestAddTileService()方法。
③能监听Dolby Atmos的TileService在QuickSettings中的状态,并实时更新。

二、需求实现

2.1 监听TileService在QuickSettings中的状态

为了实现需求②和③,我决定通过SharedPreferences来存储Dolby Atmos的TileService是否已经被添加的状态。这时我们可以利用MyTileService中的onTileAdded()和onTileRemoved()方法来刷新TileService的添加的状态。

public class MyTileService extends TileService {
   
   

    private HeadphoneReceiver headphoneReceiver;
    private static String TAG = "MyTileServiceTAG";
++  private static String TILE_ADDED_KEY = "tile_added";

    // Called when the user adds your tile.
    @Override
    public void onTileAdded() {
   
   
        super.onTileAdded();
        Log.d(TAG, "onTileAdded()");
++      saveDolbyTileAddState(true);
    }
    
	· · ·

    // Called when the user removes your tile.
    @Override
    public void onTileRemoved() {
   
   
        super.onTileRemoved();
        Log.d(TAG, "onTileRemoved()");
++      saveDolbyTileAddState(false);
        · · ·
    }

++  // 更新SharedPreferences状态
++  private void saveDolbyTileAddState(Boolean isDolbyTileAdded) {
   
   
++      SharedPreferences mySharedPref = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值