如何打开移动数据从xamarin.android mono中的弹出窗口以编程方式打开?
我试图从应用程序中的弹出窗口打开移动数据或wifi,但无法打开移动数据。我正在使用以下代码尝试此操作如何打开移动数据从xamarin.android mono中的弹出窗口以编程方式打开?,android,xamarin,xamarin.android,Android,Xamarin,Xamarin.android,我试图从应用程序中的弹出窗口打开移动数据或wifi,但无法打开移动数据。我正在使用以下代码尝试此操作 public void TurnOnInternet() { AlertDialog.Builder alert=新建AlertDialog.Builder(_上下文); alert.SetTitle(Resource.String.networktitle); SetMessage(“从以下选项中选择要启用的网络”); 警报。SetPositiveButton(“启用Wifi”,(sender
public void TurnOnInternet()
{
AlertDialog.Builder alert=新建AlertDialog.Builder(_上下文);
alert.SetTitle(Resource.String.networktitle);
SetMessage(“从以下选项中选择要启用的网络”);
警报。SetPositiveButton(“启用Wifi”,(senderAlert,args)=>
{
Intent tntent=newintent(Android.Provider.Settings.ActionSettings);
_背景。起始触觉(TNENT);
_context.Finish();
WifiManager wifi=(WifiManager)GetSystemService(Context.WifiService);
wifi.SetWifiEnabled(true);
_context.Finish();
});
alert.SetNegativeButton(“启用移动日期”(senderAlert,args)=>
{
setMobileDateState();
尝试
{
TelephonyManager telephonyService=(TelephonyManager)GetSystemService(Context.telephonyService);
方法setMobileDataEnabledMethod=telephonyService.Class.GetDeclaredMethod(“getDataEnabled”);
if(null!=setMobileDataEnabledMethod)
{
调用(telephonyService,true);
setMobileDataEnabledMethod..SetDataEnabled(true);
}
_context.Finish();
}
捕获(例外情况除外)
{ }
});
Dialog=alert.Create();
dialog.Show();
}
public void setMobileDataState()
{
尝试
{
ITelephonyClass类;
TelephonyManager telephonyService=(TelephonyManager)GetSystemService(Context.telephonyService);
方法setMobileDataEnabledMethod=telephonyService.Class.GetDeclaredMethod(“getDataEnabled”);
ITelephonyStub=setMobileDataEnabledMethod.Invoke(电话服务);
ITelephonyClass=Class.ForName(ITelephonyStub.Class.Name);
if(null!=setMobileDataEnabledMethod)
{
方法dataConnSwitchmethod=ITelephonyClass.GetDeclaredMethod(“enableDataConnectivity”);
调用(telephonyService,true);
setMobileDataEnabledMethod..SetDataEnabled(true);
telephonyService.SetDataEnabled(true);
setMobileDataEnabledMethod.SetDataState(true);
}
_context.Finish();
}
catch(Java.Lang.Exception ex)
{ }
}
这就是我正在使用的代码,但无法完成工作。移动数据部分完全不工作,因此请帮助我从我的应用程序本身打开移动数据,而无需导航到设置
如果你也知道android,请让我知道解决方案,这样我就可以得到转换的代码
我试图从应用程序中的弹出窗口打开移动数据或wifi,但无法打开移动数据
我认为移动数据和wifi是不同的东西。对于设置Wifi状态,它很简单,您可以编写如下示例:
public void TurnOnInternet(bool enabled)
{
var wm = this.GetSystemService(Context.WifiService) as WifiManager;
if (enabled)
{
if (!wm.IsWifiEnabled)
wm.SetWifiEnabled(true);
}
else
{
if (wm.IsWifiEnabled)
wm.SetWifiEnabled(false);
}
}
对于此操作,您需要在清单中具有以下权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
对于移动数据,首先,启用/禁用移动网络只能通过根访问完成,请确保您的设备支持它。然后,从Android版本5.0开始,您可以检查答案,对于其他版本,您可以按照此操作
您可能需要的此工作的权限如下:
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
因为我没有测试的根手机,虽然我创建了一个演示,但我不确定它是否有效,所以我不会在这里发布相关代码