Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何打开移动数据从xamarin.android mono中的弹出窗口以编程方式打开?_Android_Xamarin_Xamarin.android - Fatal编程技术网

如何打开移动数据从xamarin.android mono中的弹出窗口以编程方式打开?

如何打开移动数据从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

我试图从应用程序中的弹出窗口打开移动数据或wifi,但无法打开移动数据。我正在使用以下代码尝试此操作

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" />

因为我没有测试的根手机,虽然我创建了一个演示,但我不确定它是否有效,所以我不会在这里发布相关代码