Android 7.0 快速設定

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章