1.需求
客户要求在状态栏新增截屏功能。。
实现效果如下:
实现步骤
步骤1
在配置文件alps\vendor\mediatek\proprietary\packages\apps\SystemUI\res\values\config.xml添加\screenshot 显示
一个是固定位置显示, 另一个是编辑时候的显示
<string name="quick_settings_tiles_default" translatable="false">
wifi,bt,dnd,flashlight,rotation,battery,cell,airplane,cast,screenshot
</string>
<!-- Tiles native to System UI. Order should match "quick_settings_tiles_default" -->
<string name="quick_settings_tiles_stock" translatable="false">
wifi,cell,battery,dnd,flashlight,rotation,bt,airplane,location,hotspot,inversion,saver,work,cast,night,screenshot
</string>
步骤2
在\vendor\mediatek\proprietary\packages\apps\SystemUI\src\com\android\systemui\qs\tileimpl\QSFactoryImpl.java新增如下代码.
import com.android.systemui.qs.tiles.ScreenShotTile;
public class QSFactoryImpl implements QSFactory {
......
public QSTile createTile(String tileSpec) {
......
else if (tileSpec.equals("screenshot")) return new ScreenShotTile(mHost);
......
}
......
}
步骤3
在alps\vendor\mediatek\proprietary\packages\apps\SystemUI\src\com\android\systemui\qs\tiles目录下新增一个类,ScreenShotTile.java
package com.android.systemui.qs.tiles;
import com.android.systemui.R;
import android.os.Message;
import android.os.Handler;
import android.content.Context;
import android.content.Intent;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.systemui.screenshot.GlobalScreenshot;
import android.os.RemoteException;
import com.android.systemui.statusbar.policy.ScreenShotController;
import android.os.Messenger;
import com.android.systemui.qs.QSHost;
import com.android.systemui.plugins.qs.QSTile.BooleanState;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.Dependency;
public class ScreenShotTile extends QSTileImpl<BooleanState> {
private static final String TAG = "ScreenShotTile";
private static final int SCREEN_SHOT_MESSAGE = 10000;
private