完美解决android M上锁屏情况下,禁止pc通过MTP访问手机存储单元

发布时间:2020-09-15 16:06:01 作者:jingxian
来源:脚本之家 阅读:209

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 M上锁屏情况下,禁止pc通过MTP访问手机存储单元就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持亿速云。

推荐阅读:
  1. 机房综合布线:在数据中心MPO/MTP解决方案的优势有哪些?
  2. Android 5.0有哪些变化

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

android 锁屏 mtp

上一篇:怎么用命令开启MySQL服务器

下一篇:Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》