我必须发送UDP数据包到一个带有自己AP的WiFi模块上,但当我连接手机到AP时,Android会将我的数据包重定向到移动数据接口,因为它有互联网连接。我已经使用下面的代码完成了我的工作,但在Android M上似乎不起作用。
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void setWifiInterfaceAsDefault() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder builder = new NetworkRequest.Builder();
NetworkRequest networkRequest= builder.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.build();
connectivityManager.requestNetwork(networkRequest, new ConnectivityManager.NetworkCallback());
}
我还添加了
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
在我的AndroidManifest.xml中,我确保Settings.System.canWrite(this)
返回true
,但仍然没有任何作用。
提前致谢。