Android 7.0以后,任何应用都可以在下拉菜单中添加自己的快速设定,从而让程序更加灵活方便。用户可以左右滑动跨分页的访问,可以删除或新增图块,还可以定义自己的快速访问的图块。
实现快速设定,首先要创建类继承TileService,这是Android 7.0新加的,因此SDK要更新到7.0。这个服务不需要程序开启,系统默认能够识别并调用。
1.QuickSettingService.java文件
public class QuickSettingService extends TileService{
private final String TAG = "QuickSettingService";
private final int START_OFF = 0;
private final int START_ON = 1;
private int toggleState = START_ON;
@Override
public void onTileAdded() {
super.onTileAdded();
Log.i(TAG,"onTileAdded");
}
@Override
public void onTileRemoved() {
super.onTileRemoved();
Log.i(TAG,"onTileRemoved");
}
@Override
public void onClick() {
super.onClick();
Log.i(TAG,"onClick state =" + Integer.toString(getQsTile().getState()));
Icon icon;
if (toggleState == START_ON){
toggleState = START_OFF;
icon = Icon.createWithResource(getApplicationContext(), R.drawable.ic_launcher_foreground);
getQsTile().setState(Tile.STATE_INACTIVE); //非活跃状态时,icon将被渲染成灰色
}else {
toggleState = START_ON;
icon = Icon.createWithResource(getApplicationContext(),R.drawable.baidu);
getQsTile().setState(Tile.STATE_ACTIVE); //活跃状态时,icon将被渲染成白色
}
getQsTile().setIcon(icon);
getQsTile().updateTile();
}
//onTileAdded之后调用
@Override
public void onStartListening() {
super.onStartListening();
Log.i(TAG,"onStartListening");
}
//onTileRemoved移除之前调用
@Override
public void onStopListening() {
super.onStopListening();
Log.i(TAG,"onStopListening");
}
}
2.AndroidMenifest.xml文件
<service android:name=".Service.QuickSettingService"
android:label="快速设定" //显示的名字
android:icon="@drawable/baidu" //显示的图标
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"> //一定要加上对应的permission
<intent-filter >
<action android:name="android.service.quicksettings.action.QS_TILE" />
</intent-filter>
</service>