思路:

第一种方案:屏蔽除power外的其他按键,屏蔽状态栏下拉,屏蔽触屏。

代码如下:

需要系统签名:

添加权限:

package com.example.demo;

import android.app.Activity;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.Menu;

import android.util.Log;

import android.view.Window;

import android.view.WindowManager;

import android.app.StatusBarManager;

import android.view.MotionEvent;

public class MainActivity extends Activity {

public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000;

private StatusBarManager mStatusBarManager;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

getWindow().addFlags(FLAG_HOMEKEY_DISPATCHED); //禁止home

disableStatusbar();// 禁止状态栏

setContentView(R.layout.activity_main);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

// getMenuInflater().inflate(R.menu.main, menu);

return true;

}

@Override

public boolean onTouchEvent(MotionEvent event) {

// TODO Auto-generated method stub

return true;

}

private void disableStatusbar(){

// 第一句是否可以提出去

mStatusBarManager = (StatusBarManager) this.getSystemService(this.STATUS_BAR_SERVICE);

mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

// TODO Auto-generated method stub

switch (keyCode) {

case KeyEvent.KEYCODE_VOLUME_DOWN:

case KeyEvent.KEYCODE_VOLUME_UP:

case KeyEvent.KEYCODE_HOME:

return true;

default:

break;

}

return super.onKeyDown(keyCode, event);

}

@Override

public boolean onKeyLongPress(int keyCode, KeyEvent event) {

// TODO Auto-generated method stub

switch (keyCode) {

case KeyEvent.KEYCODE_VOLUME_DOWN:

case KeyEvent.KEYCODE_VOLUME_UP:

case KeyEvent.KEYCODE_HOME:

return true;

default:

break;

}

return super.onKeyLongPress(keyCode, event);

}

@Override

public void onBackPressed() {

// TODO Auto-generated method stub

// super.onBackPressed();

}

}

如此下来,可以模拟除了power外的所有操作。

2:

以上行为,没法屏蔽power,下面方案实现屏蔽power

这里使用了am命令操作.

具体操作:进入cmd 输入adb shell进入终端

am hang 即可。

3:使用apk实现am命令方案:

runCommand("am hang");

private boolean runCommand(String command) {

java.lang.Process process = null;

try {

process = Runtime.getRuntime().exec(command);

Log.i("lxm", "Runtime");

process.waitFor();

} catch (Exception e) {

e.printStackTrace();

Log.i("lxm", "error");

return false;

} finally {

try {

process.destroy();

} catch (Exception e) {

}

}

Log.i("lxm", "finally");

return true;

}

需要添加权限:

具体代码可以查看activitymanagerserver.java 里面的hang函数。

4:完整apk源码为:

AndroidManifest.xml

package="com.example.demo"

android:versionCode="1"

android:versionName="1.0" >

android:minSdkVersion="8"

android:targetSdkVersion="18" />

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/hello_world"

android:screenOrientation="portrait"

android:theme="@style/AppTheme" >

android:name="com.example.demo.MainActivity"

android:label="@string/app_name" >

MainActivity.java

package com.example.demo;

import android.app.Activity;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.Menu;

import android.util.Log;

import android.view.Window;

import android.view.WindowManager;

import android.app.StatusBarManager;

import android.view.MotionEvent;

public class MainActivity extends Activity {

public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000;

private StatusBarManager mStatusBarManager;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

getWindow().addFlags(FLAG_HOMEKEY_DISPATCHED);

disableStatusbar();

setContentView(R.layout.activity_main);

java.lang.Process process = null;

runCommand("am hang");

}

private boolean runCommand(String command) {

java.lang.Process process = null;

try {

process = Runtime.getRuntime().exec(command);

Log.i("lxm", "Runtime");

process.waitFor();

} catch (Exception e) {

e.printStackTrace();

Log.i("lxm", "error");

return false;

} finally {

try {

process.destroy();

} catch (Exception e) {

}

}

Log.i("lxm", "finally");

return true;

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

// getMenuInflater().inflate(R.menu.main, menu);

return true;

}

@Override

public boolean onTouchEvent(MotionEvent event) {

// TODO Auto-generated method stub

return true;

}

private void disableStatusbar(){

// 第一句是否可以提出去

mStatusBarManager = (StatusBarManager) this.getSystemService(this.STATUS_BAR_SERVICE);

mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

// TODO Auto-generated method stub

switch (keyCode) {

case KeyEvent.KEYCODE_VOLUME_DOWN:

case KeyEvent.KEYCODE_VOLUME_UP:

case KeyEvent.KEYCODE_HOME:

return true;

default:

break;

}

return super.onKeyDown(keyCode, event);

}

@Override

public boolean onKeyLongPress(int keyCode, KeyEvent event) {

// TODO Auto-generated method stub

switch (keyCode) {

case KeyEvent.KEYCODE_VOLUME_DOWN:

case KeyEvent.KEYCODE_VOLUME_UP:

case KeyEvent.KEYCODE_HOME:

return true;

default:

break;

}

return super.onKeyLongPress(keyCode, event);

}

@Override

public void onBackPressed() {

// TODO Auto-generated method stub

// super.onBackPressed();

}

}

android.mk 为:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-java-files-under, src)

#LOCAL_STATIC_JAVA_LIBRARIES := com.android.phone.common

LOCAL_PACKAGE_NAME := Frozen

LOCAL_CERTIFICATE := platform

#LOCAL_PROGUARD_FLAG_FILES := proguard.flags

include $(BUILD_PACKAGE)

# Use the folloing include to make our test apk.

include $(call all-makefiles-under,$(LOCAL_PATH))

android手机冻屏问题,android 模拟冻屏 代码实现相关推荐

  1. android手机用户,2011年Android手机用户使用行为研究报告

    一.市场概述及研究背景 谷歌Android,自获得摩托罗拉.三星.HTC.中兴.华为等诸多品牌的拥趸开始,就扮演起了智能手机市场竞争格局颠覆者的角色.经过近三年时间的发展,Gartner最新数据显示, ...

  2. 荣耀android手机怎么截图,荣耀30怎么截屏?荣耀30三种截屏方法

    从苹果手机换荣耀30手机,但是不会截屏,想要截屏怎么办呢? 荣耀30三种截屏方法 荣耀30是华为旗下荣耀的一款智能手机,于2020年4月15日发布.不过由苹果转过来的可以通过下面的方法截图. 使用组合 ...

  3. 全球 android手机排行 2013,全球Android手机性能排行 三星Note 3夺魁

    尽管跑分测试成绩并不是手机实际性能表现的全部,但至少还是能够在很大程度上体现一款手机硬件配置的水平.而作为知名的跑分软件,安兔日前公布了今年第三季Android手机性能排行榜,则或许能够给我们一些参考 ...

  4. android手机连接windows,将Android手机投影到Windows 10 PC [夏昆冈]

    Windows 10 预览版Build 14328加入了原生的Miracast投影功能,简单说,任意加入无线网络的Win10设备都可以成为一台无线显示器设备.这样一来,几乎所有Android手机和Wi ...

  5. android手机沙盒作用,Android手机沙盒

    1.什么是沙盒? 沙盘英文名sandbox,也叫沙箱,顾名思义可以看做是一种容器,里面所做的一切都可以推倒重来,军事上常用沙盘来进行一些战争区域的地形模拟,这个你见过吧?不用了可以把沙子推平重来. 我 ...

  6. android手机nfc功能安装,Android手机NFC分享功能实测-头条网

    图一.二 名片.网址分享 温馨提示:传送文件时双方手机需处于未锁屏状态,并开启手机的NFC和Android Beam功能,有些手机的设置菜单中找不到Android Beam,是因为其功能已经内置在系统 ...

  7. android手机性能,2月Android手机性能榜:骁龙865大显神威

    冬去春来,时间进入3月,万物复苏,手机厂商们也开始筹备自家的开年旗舰,新机的发布伴随着性能攀升,我们的2月Android手机性能榜如期到来. 本次榜单统计的时间为2020年2月1日-2020年2月29 ...

  8. android手机的功能,WP7/Android手机常用功能对比

    据资讯网站Neowin报道,近日,微软发布了旗下手机操作系统平台WindowsPhone 7,智能手机领域的局势变得更加扑朔迷离.Neowin网站开辟专栏,就WP7和Android两大平台手机的诸多性 ...

  9. android手机数字取证,基于Android智能终端微信应用的数字取证分析模型的研究

    第 42卷 第 10A期 2015年 10月 计 算 机 科 学 Computer Science Vo1.42 No.10A Oct 2015 基于 Android智能终端微信应用的数字取证分析模型 ...

  10. mac安装软件管理Android手机,Mac如何管理Android手机:这方式很得体

    [PConline 评测]还记得是在8月份锤子的发布会上,除了带来了新的坚果手机外,在系统领域,老罗吐槽安卓系统和 Mac 连接时,传输和管理文件的方极为丑陋,因此他们为Mac用户精心开发了一款名为S ...

最新文章

  1. 提前体验「iPhone30」:7比32超长显示器,刷微博神器来了
  2. 牛客 - tokitsukaze and Inverse Number(树状数组+逆序对定理)
  3. firefox伪造请求头信息,模拟手机访问网站
  4. rstudio安装包_如何安装R与Rstudio
  5. 谢宝友:会说话的Linux内核
  6. mysql中sql语句使用_mysql数据库中用到sql语句
  7. ashx获取input file 文件_前端战五渣学前端——FileReader预览本地文件
  8. C语言之预处理探究(四):#、##和预定义宏
  9. 【scala初学】scala 语法 声明
  10. 数据结构 以数组的形式存储数据(c语言 干货满满)
  11. 探究CRM未来趋势:纷享销客的连接型CRM到底是什么?
  12. 使用youtube语音识别功能给视频加自动字幕
  13. PS标尺参考线拖不准问题
  14. 逻辑回归分析实训----乳腺癌肿瘤预测
  15. Unity利用代码生成空心立方体(立方体挖走一个圆柱)
  16. 信息收集--OSINT
  17. 新零售线上+线下的完美营销
  18. Element的Cascader 级联选择器禁用和回显问题
  19. 关于rangeOfString判断是否存在字符串bug
  20. 推荐系统[四]:精排-详解排序算法LTR (Learning to Rank): poitwise, pairwise, listwise相关评价指标,超详细知识指南。

热门文章

  1. CentOs下部署Core环境
  2. Golang并发编程进程通信channel了解及简单使用
  3. 记一次 nginx 504 Gateway Time-out
  4. 【VS开发】VS2010 MFC中控件、对话框等背景颜色动态修改的方法
  5. Icon资源详解[1]
  6. CC学iOS杂记 001_Device
  7. 无废话ExtJs 入门教程八[脚本调试Firefox:firebug]
  8. 解决:无法添加符号: DSO missing from command line
  9. C++之queue和dequeu用法
  10. Linux命令之nl