Nac*_*ing 12 events android screenshot detect
我近几年编程到Android,我想知道:如何检测用户何时截屏?我希望当用户截取屏幕截图时,我们会转到下一个活动.我尝试了拦截事件的方法,但是存在一个问题:例如,当设备进入休眠状态时,拦截了一个事件.您是否有拦截仅截取事件或忽略其他事件的解决方案?
谢谢您的帮助 !
Esc*_*ist 16
没有直接的广播意图告诉你截图已被拍摄.这里的一些人讨论了这样做的可能选择(就像在Snapchat上完成的那样).一种可能的选择是使用FileObserver.
Udi*_*hah 10
这是我的黑客在获取屏幕截图时收到通知.
public void detectScreenShotService(final Activity activity){
final Handler h = new Handler();
final int delay = 3000; //milliseconds
final ActivityManager am=(ActivityManager)activity.getSystemService(Context.ACTIVITY_SERVICE);
h.postDelayed(new Runnable(){
public void run(){
List<ActivityManager.RunningServiceInfo> rs=am.getRunningServices(200);
for(ActivityManager.RunningServiceInfo ar:rs){
if(ar.process.equals("com.android.systemui:screenshot")){
Toast.makeText(activity,"Screenshot captured!!",Toast.LENGTH_LONG).show();
}
}
h.postDelayed(this, delay);
}
}, delay);
}
Run Code Online (Sandbox Code Playgroud)
在Oneplus 2和Moto E上测试过
更新:
这最终不适合我,我最终在屏幕截图类型的条目上使用ContentObserver.
| 归档时间: |
|
| 查看次数: |
19854 次 |
| 最近记录: |