完美解决android M上锁屏情况下,禁止pc通过MTP访问手机存储单元
作者:jingxian 时间:2023-01-23 07:55:37
1、问题解决主要文件:/m8976/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
需要在MtpService.java中updateDisabledStateLocked 方法添加锁屏情况限制:
final KeyguardManager keyguardManager = (KeyguardManager) getSystemService(
Context.KEYGUARD_SERVICE);
mMtpDisabled = (keyguardManager.isKeyguardLocked() && keyguardManager.isKeyguardSecure()) || !mUnlocked || !isCurrentUser;
只要锁屏,mMtpDisabled就设置为true。
这样就实现该功能。
2、当解锁时,自动加载手机存储单元:
添加解锁监听
+ private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ final String action = intent.getAction();
+ if (Intent.ACTION_USER_PRESENT.equals(action)) {
+ // If the media scanner is running, it may currently be calling
+ // sendObjectAdded/Removed, which also synchronizes on mBinder
+ // (and in addition to that, all the native MtpServer methods
+ // lock the same Mutex). If it happens to be in an mtp device
+ // write(), it may block for some time, so process this broadcast
+ // in a thread.
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ synchronized (mBinder) {
+ // Unhide the storage units when the user has unlocked the lockscreen
+ if (mMtpDisabled) {
+ addStorageDevicesLocked();
+ mMtpDisabled = false;
+ }
+ }
+ }}, "addStorageDevices").start();
+ }
+ }
+ };
Android M上发送解锁状态的广播code没有去除,可以查看/m8976/frameworks/base/packages/SystemUI/src/com/android /systemui/keyguard/KeyguardViewMediator.java
在KeyguardViewMediator.java文件中可以看出,在解锁时,发送Intent.ACTION_USER_PRESENT广播,然后在MtpService.java
进行接收,对mMtpDisabled进行处理。
标签:android,锁屏,mtp,存储
0
投稿
猜你喜欢
Templates实战之更优雅实现自定义View构造方法详解
2021-12-22 13:22:40
Android sharedPreferences实现记住密码功能
2022-09-11 13:58:37
java实现快速排序图文详解
2022-10-11 16:35:18
一起聊聊Java中13种锁的实现方式
2022-11-23 15:26:00
SpringBoot+Elasticsearch实现数据搜索的方法详解
2023-04-17 02:45:46
Java使用Collections.sort()排序的方法
2022-09-11 18:47:55
Android WebView开发之自定义WebView工具框
2023-01-12 13:41:43
Spring Boot和Kotlin的无缝整合与完美交融
2022-07-08 04:54:09
Java中实现文件预览的功能(实例代码)
2023-09-09 16:13:06
Java递归算法遍历部门代码示例
2021-08-03 20:59:20
ConcurrentHashMap 存储结构源码解析
2022-09-28 08:32:41
java实现转圈打印矩阵算法
2022-11-27 06:38:21
Android 在 res/layout 文件夹 下创建一个 子文件夹实例
2021-07-31 22:50:21
详解Eclipse 字体、字号的设置、最佳字体推荐
2023-11-26 12:25:32
安卓(Android)中如何实现滑动导航
2023-10-17 10:51:18
idea的使用之关于tomcat热部署的教程
2022-12-02 20:16:46
解决idea中yml文件不识别的问题
2021-12-07 02:09:28
Java实现的RSA加密解密算法示例
2022-05-03 09:20:38
Android仿微信雷达辐射搜索好友(逻辑清晰实现简单)
2022-07-25 05:28:19
Android使用ViewDragHelper实现QQ6.X最新版本侧滑界面效果实例代码
2022-10-14 08:38:22