这个是采用发送广播的形式,自己写app软件发送广播就可以实现此功能
’frameworks\base\services\core\java\com\android\server\policy\PhoneWindowManager.java
导入依赖
import android.bluetooth.BluetoothAdapter;
import android.net.TetheringManager;
import android.net.ConnectivityManager;
import static android.net.ConnectivityManager.TETHERING_BLUETOOTH;
import static android.net.ConnectivityManager.TETHERING_USB;
import static android.net.TetheringManager.TETHERING_ETHERNET;
然后要去使用,
先去注册
// register for dock eventsIntentFilter filter = new IntentFilter();filter.addAction(UiModeManager.ACTION_ENTER_CAR_MODE);filter.addAction(UiModeManager.ACTION_EXIT_CAR_MODE);filter.addAction(UiModeManager.ACTION_ENTER_DESK_MODE);filter.addAction(UiModeManager.ACTION_EXIT_DESK_MODE);filter.addAction(Intent.ACTION_DOCK_EVENT);//这两个广播打开与关闭filter.addAction("com.tyd.intent.internet.share.open");filter.addAction("com.tyd.intent.internet.share.close");Intent intent = context.registerReceiver(mDockReceiver, filter);
然后去注册的mDockReceiver里面去进行接收我们的广播
BroadcastReceiver mDockReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {if (Intent.ACTION_DOCK_EVENT.equals(intent.getAction())) {mDefaultDisplayPolicy.setDockMode(intent.getIntExtra(Intent.EXTRA_DOCK_STATE,Intent.EXTRA_DOCK_STATE_UNDOCKED));} else {try {IUiModeManager uiModeService = IUiModeManager.Stub.asInterface(ServiceManager.getService(Context.UI_MODE_SERVICE));mUiMode = uiModeService.getCurrentModeType();} catch (RemoteException e) {}}//addTetheringManager mTetheringManager =(TetheringManager) context.getSystemService(Context.TETHERING_SERVICE); if(intent.getAction().equals("com.tyd.intent.internet.share.open")) {//这里写入的系统属性,1代表是打开了usb共享SystemProperties.set("persist.sys.bnd.system.bnd.usb_state","1");BluetoothAdapter btadapter =BluetoothAdapter.getDefaultAdapter();ConnectivityManager mCm =(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);android.os.SystemProperties.set("persist.sys.internet_share","1");mTetheringManager.setUsbTethering(true);if (btadapter != null) try{if(!btadapter.isEnabled())btadapter.enable();//mCm.startTethering(TETHERING_BLUETOOTH,true, new ConnectivityManager.OnStartTetheringCallback(){});//mCm.startTethering(TETHERING_ETHERNET,true, new ConnectivityManager.OnStartTetheringCallback(){});}catch (Exception e){Log.i("yantao","startTethering error="+e);}}if (intent.getAction().equals("com.tyd.intent.internet.share.close")){SystemProperties.set("persist.sys.bnd.system.bnd.usb_state","0");android.os.SystemProperties.set("persist.sys.internet_share","0");mTetheringManager.stopAllTethering();}//endupdateRotation(true);mDefaultDisplayRotation.updateOrientationListener();}};