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>