关于系统属性
Framework中系统属性ro、persist、net
1.ro开头的系统属性
如果属性名称以“ro.”开头,那么这个属性被视为只读属性。一旦设置,属性值不能改变。
2.persist开头的系统属性
如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/data/property。
3.net开头的系统属性
如果属性名称以“net.”开头,当设置这个属性时,“net.change”属性将会自动设置,以加入到最后修改的属性名。
需求:
使用上滑,左滑,右滑来实现home,back,menu键的功能
实现
mSystemGestures = new SystemGesturesPointerEventListener(context,
new SystemGesturesPointerEventListener.Callbacks() {
@Override
public void onSwipeFromTop() {
//下拉 SystemUI的通知栏,信号栏
android.util.Log.d("tww26","onSwipeFromTop");
if (mStatusBar != null) {
requestTransientBars(mStatusBar);
}
}
@Override
public void onSwipeFromBottom() {
android.util.Log.d("tww26","onSwipeFromBottom");
readKeyString("HOME");//add
//上滑 SystemUI的导航栏
if (mNavigationBar != null && mNavigationBarPosition == NAV_BAR_BOTTOM) {
requestTransientBars(mNavigationBar);
}
}
@Override
public void onSwipeFromRight() {
android.util.Log.d("tww26","onSwipeFromRight");
readKeyString("MENU");//add
if (mNavigationBar != null && mNavigationBarPosition == NAV_BAR_RIGHT) {
requestTransientBars(mNavigationBar);
}
}
@Override
public void onSwipeFromLeft() {
android.util.Log.d("tww26","onSwipeFromLeft");
readKeyString("BACK");//add
if (mNavigationBar != null && mNavigationBarPosition == NAV_BAR_LEFT) {
requestTransientBars(mNavigationBar);
}
}
private void readKeyString(String keyString){
if("BACK".equals(keyString)){
long nowT = SystemClock.uptimeMillis();
KeyEvent down = new KeyEvent(nowT,nowT,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_BACK,0);
InputManager.getInstance().injectInputEvent(
down, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
KeyEvent up = new KeyEvent(nowT,nowT,KeyEvent.ACTION_UP,KeyEvent.KEYCODE_BACK,0);
InputManager.getInstance().injectInputEvent(
up, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
}else if("HOME".equals(keyString)){
launchHomeFromHotKey();
}else if("MENU".equals(keyString)){
toggleRecentApps();
}
}
/*模拟按键事件keyCode adb shell input keyevent 1
1->menu 3->home 4->back
*/
private void sendKeyCode(final int keyCode){
new Thread(new Runnable() {
@Override
public void run() {
try {
Instrumentation instrumentation = new Instrumentation();
instrumentation.sendKeyDownUpSync(keyCode);
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}