首页投稿(暂停使用,暂停投稿)Android技术知识Android开发

Android N 新功能 - 添加快速设定

2016-07-18  本文已影响1906人  gtechoogle

Android N version 其中一个功能,就是允许三方app可以添加自己的快速设定,到系统的下拉设定中,方便用户快速打开关闭某些功能.

废话不多说,直接上代码来讲解.

public class TestTile extends TileService {
    @Override
    public void onStartListening() {
        super.onStartListening();
    }

    @Override
    public void onStopListening() {
        super.onStopListening();
    }

    @Override
    public void onClick() {
        super.onClick();
    }
}

这里的override方法之后会再详细介绍.

<service android:name=".TestTile"
            android:label="@string/tile_label"
            android:icon="@drawable/ic_zen"
          android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
            <intent-filter>
                <action android:name="android.service.quicksettings.action.QS_TILE"/>
            </intent-filter>
</service>

从上面的声明中,其实已经比较明显,这个Tile要显示的名字,icon等都是在这里声明的,特别注意这里一定要加上对应的permission才行.

Screenshot_20160718-202234.png
@Override
    public void onClick() {
        super.onClick();
        Log.d("TEST","Launch onClick()")
    }

那么怎么更新state呢?这里QS的定义会是两个状态,Tile.STATE_ACTIVE 和 Tile.STATE_INACTIVE, 而这两个状态的设定则是app自己结合你的功能来设定,然后再更新UI,方法基本上类似下面

@Override
    public void onClick() {
        super.onClick();        
        num++;
        boolean enabled = num % 2 == 0;
        Log.d("TEST","Run onClick function with enabled = " + enabled);
        getQsTile().setState(enabled ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE);
        getQsTile().updateTile();
    }

另外要注意,这里的ACTIVE和INACTIVE其实就是对图做翻色的一个设定,我没有测试这里是否可以放置非白色的图,但是default都是这种白色的icon,然后反转成黑底的

Screenshot_20160718-210709.png Screenshot_20160718-210714.png
07-18 21:03:10.437  8692  8692 D TEST    : Run onClick function with enabled = f
alse
07-18 21:03:13.715  8692  8692 D TEST    : Run onClick function with enabled = t
rue
07-18 21:03:14.941  8692  8692 D TEST    : Run onClick function with enabled = f
alse
07-18 21:03:15.656  8692  8692 D TEST    : Run onClick function with enabled = t
rue
07-18 21:03:21.745  8692  8692 D TEST    : Run onClick function with enabled = f
alse
07-18 21:03:22.531  8692  8692 D TEST    : Run onClick function with enabled = t
rue
07-18 21:05:07.896  8692  8692 D TEST    : Run onClick function with enabled = f
alse
07-18 21:07:11.244  8692  8692 D TEST    : Run onClick function with enabled = t
rue

原理的部分还没有仔细看过,如果有兴趣的同学可以一起讨论学习.

上一篇 下一篇

猜你喜欢

热点阅读