Android 启用/禁用WLAN直连功能
生活随笔
收集整理的這篇文章主要介紹了
Android 启用/禁用WLAN直连功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
修改記錄【mt67xx_11.0】
--- a/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/wifi/p2p/WifiP2pSettings.java +++ b/alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/wifi/p2p/WifiP2pSettings.java @@ -61,6 +61,11 @@ import com.android.settingslib.core.AbstractPreferenceController;import java.util.ArrayList;import java.util.List; +//add start +import android.provider.Settings; +import android.database.ContentObserver; +import android.os.Handler; +//add end/** Displays Wi-fi p2p settings UI @@ -106,9 +111,43 @@ public class WifiP2pSettings extends DashboardFragmentprivate WifiP2pDevice mThisDevice;private WifiP2pDeviceList mPeers = new WifiP2pDeviceList(); + private Context mContext;//add@VisibleForTesting String mSavedDeviceName;+ //add by start + private ContentObserver mWifiP2pEnableObserver = new ContentObserver(new Handler()){ + @Override + public void onChange(boolean selfChange) { + boolean state = Settings.Global.getInt(mContext.getContentResolver(), "isWi fiP2pEnable", 1) == 1; //這里如果直接用getContext()或activity.getApplicationContext()會有空指針報錯 + if (!state) { + if (mWifiP2pManager != null) { + mWifiP2pManager.cancelConnect(mChannel, + new WifiP2pManager.ActionListener() { + public void onSuccess() { + if (DBG) Log.d(TAG, " cancel connect success"); + } + public void onFailure(int reason) { + if (DBG) Log.d(TAG, " cancel connect fail " + reason); + } + }); + mWifiP2pManager.removeGroup(mChannel, new WifiP2pManager.ActionList ener() { + public void onSuccess() { + if (DBG) Log.d(TAG, " remove group success"); + } + public void onFailure(int reason) { + if (DBG) Log.d(TAG, " remove group fail " + reason); + } + }); + mSelectedGroup = null; + } + } + handleP2pStateChanged(); + } + }; + //add end +@VisibleForTestingfinal BroadcastReceiver mReceiver = new BroadcastReceiver() {@Override @@ -116,8 +155,12 @@ public class WifiP2pSettings extends DashboardFragmentString action = intent.getAction();if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) { - mWifiP2pEnabled = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, - WifiP2pManager.WIFI_P2P_STATE_DISABLED) == WifiP2pManager.WIFI_P2P_ STATE_ENABLED; + //add by start + mContext = context; + boolean state = Settings.Global.getInt(context.getContentResolver(),"is WifiP2pEnable",1) == 1; + mWifiP2pEnabled = (intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, + WifiP2pManager.WIFI_P2P_STATE_DISABLED) == WifiP2pManager.WIFI_P2P_ STATE_ENABLED) && state; + //add endhandleP2pStateChanged();} else if (WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action)) {mPeers = (WifiP2pDeviceList) intent.getParcelableExtra( @@ -332,7 +375,10 @@ public class WifiP2pSettings extends DashboardFragment}}}; - + //add start + activity.getApplicationContext().getContentResolver().registerContentObserver( + Settings.Global.getUriFor("isWifiP2pEnable"), true,mWifiP2pEnableOb server); + //add endsuper.onActivityCreated(savedInstanceState);}總結
以上是生活随笔為你收集整理的Android 启用/禁用WLAN直连功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯云云函数收费?python脚本挂回自
- 下一篇: [默认值]Android修改默认wifi