Android开发:实现系统自带截屏功能 需要获取System权限
在一个service界面上,点击一个button按钮,可以截屏
贴上代码:
mButton.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
capturescreen();
}
});
private void captureScreen ()
{
mHandler.postDelayed(mScreenshotChordLongPress,1000);
}
private final Runnable mScreenshotChordLongPress = new Runnable() {
public void run() {
takeScreenshot();
}
};
final Runnable mScreenshotTimeout = new Runnable() {
public void run() {
synchronized (mScreenshotLock) {
if (mScreenshotConnection != null) {
mContext.unbindService(mScreenshotConnection);
mScreenshotConnection = null;
}
}
}
};
private void takeScreenshot() {
synchronized (mScreenshotLock) {
if (mScreenshotConnection != null) {
return;
}
ComponentName cn = new ComponentName("com.android.systemui",
"com.android.systemui.screenshot.TakeScreenshotService");
Intent intent = new Intent();
intent.setComponent(cn);
ServiceConnection conn = new ServiceConnection() {
public void onServiceConnected(ComponentName name, IBinder service) {
synchronized (mScreenshotLock) {
if (mScreenshotConnection != this) {
return;
}
Messenger messenger = new Messenger(service);
Message msg = Message.obtain(null, 1);
final ServiceConnection myConn = this;
Handler h = new Handler(mHandler.getLooper()) {
@Override
public void handleMessage(Message msg) {
synchronized (mScreenshotLock) {
if (mScreenshotConnection == myConn) {
mContext.unbindService(mScreenshotConnection);
mScreenshotConnection = null;
mHandler.removeCallbacks(mScreenshotTimeout);
}
}
}
};
msg.replyTo = new Messenger(h);
msg.arg1 = msg.arg2 = 0;
// if (mStatusBar != null && mStatusBar.isVisibleLw())
// msg.arg1 = 1;
// if (mNavigationBar != null && mNavigationBar.isVisibleLw())
// msg.arg2 = 1;
try {
messenger.send(msg);
} catch (RemoteException e) {
}
}
}
public void onServiceDisconnected(ComponentName name) {}
};
if (mContext.bindService(intent, conn, Context.BIND_AUTO_CREATE)) {
mScreenshotConnection = conn;
mHandler.postDelayed(mScreenshotTimeout, 10000);
}
}
}
点击button之后会停运,因为调用系统截屏的serivce:com.android.systemui.screenshot.TakeScreenshotService
要调用此service需要sysytem权限才能调用:
唯有将此应用内置到手机里面,才能获取到sysytem权限:
做法如下:
1.在你自己的程序当中的的mainfest.xml的manifest加上此属性android:sharedUserId="android.uid.system"
2.内置的时候Android.mk中加上LOCAL_CERTIFICATE := PLATFORM
3.在linux环境下将此应用编译进去。这样就能够实现系统自带的截屏了
Android开发:实现系统自带截屏功能 需要获取System权限相关推荐
- Android app和系统应用实现截屏功能
开发截屏功能也是常用的方法,一种是在普通app中通用的截屏方法,另外一种就是系统应用中使用的截屏方法,比如:SystemUI中添加截图功能 接下来就来实现普通app 和系统应用中截图的功能 1.普通a ...
- 苹果新手Mac OS X 使用笔记--------系统自带截屏功能快捷键巧记图
在Windows世界里时,最好用的截屏软件要算是faststone了,那么OS X里是否有好用的截屏软件呢?答案是肯定的,而且是系统自身就带有的功能,使用时记住几个快捷键就可以了.具体如下: 其中 ( ...
- XP系统自带截屏功能操作方法
一.代替屏幕截图软件 按下Print Screen键,将会截取全屏幕画面.用鼠标点击"开始→程序→附件→画图",将会打开"画图"程序,点击该窗口中的&quo ...
- ios android 截屏 分享,iOS 系统自带截屏分享
分享一篇iOS系统自带截屏分享 使用方案 UIImage *image = [KJTools kj_shareWithHideBlock:^bool{ /// 隐藏不需要截图的区域 return YE ...
- Win10系统自带截屏快捷键
Win10系统自带截屏快捷键 交截图文件的时候,一般都喜欢用微信或者QQ带的截屏功能,但QQ.微信截屏很多时候也不是万能的,总有用到系统截屏的时候. 系统截图操作快捷键: Win + shift + ...
- Windows之系统自带截屏快捷键
Windows之系统自带截屏快捷键 现在我们都习惯了使用QQ截屏,但是有时候电脑没有网络,也就意味着无法登陆QQ,在这个时候再有截屏的需求时,我们就束手无策了. 截取全屏 现在我说以个Windows系 ...
- iOS 系统自带截屏分享
分享一篇iOS系统自带截屏分享 使用方案 UIImage *image = [KJTools kj_shareWithHideBlock:^bool{/// 隐藏不需要截图的区域return YES; ...
- Windows系统自带录屏功能,再也不用下录屏软件了
使用 Xbox Game Bar 录屏 只需要点击搜索图标(或通过快捷键[Win+S]打开)搜索,运行[Xbox Game Bar],或者直接通过[Win+G]快捷键打开就可以啦~ 捕获图标不可用 可 ...
- html禁止手机截屏,[置顶] Android 应用内禁止截屏功能的实现
截图介绍 Android的调试工具DDMS提供有截屏功能,很多软件也会有截屏功能,在做支付等安全类应用的时候,为了保证用户的资产和系统安全,往往会禁止应用内截屏,禁止之后,在此应用处于前台的情况下,截 ...
最新文章
- 使用Python+OpenCV+GAN实现车牌图像增强
- 感知算法论文(八):Generalized Intersection over Union:A Metric and A Loss for Bounding Box Regression(2019)
- BZOJ4590: [Shoi2015]自动刷题机
- x11转发:通过ssh远程使用GUI程序
- linux如何卸载conky,Linux Deepin 15.10.2 下折腾 简单自制的 Conky Conky-manager
- Redis之List类型操作
- MAVLink 协议解析之XML定义篇
- gcn语义分割_语义分割该如何走下去?
- PHP压缩CSS文件
- Python 帮助文件
- ubuntu等linux系统如何阅读caj文档
- java万能万年历的程序_Java编写多功能万年历程序的实例分享
- html与css笔记(旧)
- U3D学习项目一:2D横版小狐狸闯关游戏(代码部分二)
- 现在国际上发行的优秀的儿童期刊杂志有哪些
- python爬取支付宝基金数据_python爬取支付宝账单
- 计算机操作员要求,计算机操作员教学大纲
- Python实例1—打印购物小票
- 中国石斑鱼养殖产量不断上升,捕捞产量逐渐下降「图」
- Html+css+js实战:百度搜索框样式实现
热门文章
- 哪个计算机软件可以编辑动画文字,用什么软件可以修改GIF动画里的文字,怎么修改GIF动画的文字...
- VirtualBox for macOS NS_ERROR_FAILURE (0x80004005) 问题解决记录
- 孩子误了计算机考试能参加中考吗,看完中考电脑阅卷“内幕”,你还会让孩子这样答卷吗?...
- 复信号的傅里叶变换是什么?频谱是什么样子的?3D频谱图长啥样子?
- linux系统下的动态壁纸,Ubuntu 10.04下实现动态桌面壁纸
- C语言编程>第二十三周 ⑤ 请补充main函数,该函数的功能是:求1~100(不包括100)以内所有素数的平均值。
- 短视频是屌丝逆袭的一个绝好的机会
- PHP项目中使用 Markdown编辑器
- springboot系列(十二):如何实现邮件发送提醒,你一定得会(准备篇)
- java 静态变量回收_浅谈静态变量的回收问题