我是靠谱客的博主 哭泣奇迹,最近开发中收集的这篇文章主要介绍用代码实现断开Android手机USB连接【转】用代码实现断开Android手机USB连接,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文转载自:https://blog.csdn.net/phoebe_2012/article/details/47025309

用代码实现断开Android手机USB连接

       
        用代码 实现了一个小功能:断开android手机USB连接。
        

 

[java]  view plain  copy
 
  1. <span style="white-space:pre">    </span>// 尝试断开USB连接  
  2.     boolean disconnectUSB() {  
  3.         String state = "none";// 禁用所有usb  
  4.         //String state = "adb";// 仅使用adb  
  5.         //String state = "mtp,adb";// 使用mtp与adb  
  6.         SystemProperties.set("sys.usb.config", state);  
  7.         // wait for the transition to complete.  
  8.         // give up after 1 second.  
  9.         for (int i = 0; i < 20; i++) {  
  10.             // State transition is done when sys.usb.state is set to the new configuration  
  11.             if (state.equals(SystemProperties.get("sys.usb.state"))) return true;  
  12.             SystemClock.sleep(50);  
  13.         }  
  14.         return false;  
  15.     }  


        也可通过反射机制进行调用,但其实最终实际执行的还是上面的代码。

 

[java]  view plain  copy
 
    1. try {  
    2.     final int MSG_SET_CURRENT_FUNCTIONS = 2;  
    3.     IBinder usb_service = ServiceManager.getService(Context.USB_SERVICE);  
    4.       
    5.     Class<?> c_UsbService = Helpers.findClass("com.android.server.usb.UsbService");  
    6.     Field f_mDeviceManager = Helpers.findField(c_UsbService, "mDeviceManager");  
    7.     Object o_mDeviceManager = f_mDeviceManager.get(usb_service);  
    8.       
    9.     Class<?> c_UsbDeviceManager = Helpers.findClass("com.android.server.usb.UsbDeviceManager");  
    10.     Field f_mHandler = Helpers.findField(c_UsbDeviceManager, "mHandler");  
    11.     Object o_mHandler = f_mHandler.get(o_mDeviceManager);  
    12.     Handler h_mHandler = (Handler) o_mHandler;  
    13.   
    14.     // 禁用adb  
    15.     Field f_mAdbEnabled = Helpers.findField(c_UsbDeviceManager, "mAdbEnabled");  
    16.     f_mAdbEnabled.setBoolean(o_mDeviceManager, false);  
    17.       
    18.     // 不提供USB服务  
    19.     Message msg = Message.obtain(h_mHandler, MSG_SET_CURRENT_FUNCTIONS);  
    20.     msg.obj = new String("none");  
    21.     msg.arg1 = 0;  
    22.     h_mHandler.removeMessages(MSG_SET_CURRENT_FUNCTIONS);  
    23.     h_mHandler.sendMessage(msg);  
    24.       
    25.     Log.d("test", "[End]try disconnect USB");  
    26.     return true;  
    27. catch (Throwable e) {  
    28.     e.printStackTrace();  
    29.     Log.e("test", "[disconnectUSB][Throwable]" + e.getMessage());  
    30. }  
    31. return false;  

转载于:https://www.cnblogs.com/zzb-Dream-90Time/p/9141960.html

最后

以上就是哭泣奇迹为你收集整理的用代码实现断开Android手机USB连接【转】用代码实现断开Android手机USB连接的全部内容,希望文章能够帮你解决用代码实现断开Android手机USB连接【转】用代码实现断开Android手机USB连接所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部