完美解決android M上鎖屏情況下,禁止pc通過MTP訪問手機存儲單元
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。
這樣就實現(xiàn)該功能。
2、當解鎖時,自動加載手機存儲單元:
添加解鎖監(jiān)聽
+ 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上發(fā)送解鎖狀態(tài)的廣播code沒有去除,可以查看/m8976/frameworks/base/packages/SystemUI/src/com/android /systemui/keyguard/KeyguardViewMediator.java
在KeyguardViewMediator.java文件中可以看出,在解鎖時,發(fā)送Intent.ACTION_USER_PRESENT廣播,然后在MtpService.java
進行接收,對mMtpDisabled進行處理。
以上這篇完美解決android M上鎖屏情況下,禁止pc通過MTP訪問手機存儲單元就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android編程之界面實現(xiàn)全屏顯示的方法(2種方法)
這篇文章主要介紹了Android編程之界面實現(xiàn)全屏顯示的方法,結(jié)合實例分析了Java代碼中設置與Manifest文件設置2種實現(xiàn)方法,需要的朋友可以參考下2016-01-01
flutter RotationTransition實現(xiàn)旋轉(zhuǎn)動畫
這篇文章主要為大家詳細介紹了flutter RotationTransition實現(xiàn)旋轉(zhuǎn)動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07
Android Style.xml的應用詳解及代碼實現(xiàn)
這篇文章主要介紹了Android Style.xml的應用詳解及代碼實現(xiàn)的相關(guān)資料,需要的朋友可以參考下2016-10-10
android BottomSheetDialog新控件解析實現(xiàn)知乎評論列表效果(實例代碼)
BottomSheetDialog是一個自定義的從底部滑入的對話框,這篇文章主要介紹了android BottomSheetDialog新控件解析實現(xiàn)知乎評論列表效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04

