Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在Android应用程序中提供选择Wi-Fi或GPRS网络连接的选项大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的应用程序中,我想向用户提供选择Wi-Fi / GPRS来与网络服务器进行网络连接的选项.可能是以下问题的答案解决我的问题
1.如何检查当前认网络连接选项是否启用.
2.如何在用户选择时启用Wi-Fi / GPRS,或(如果用户选择GPRS,则禁用Wi-Fi – 如果GPRS只需要此选项)

还是有其他一些方法呢?

解决方法

尝试这个:
Connectivitymanager connManager = (Connectivitymanager) getSystemservice(CONNECTIVITY_serviCE);
NetworkInfo mWifi = connManager.getNetworkInfo(Connectivitymanager.TYPE_WIFI);

if (mWifi.isConnected())
    //if wifi connected
}

Connectivitymanager connManager1 = (Connectivitymanager) getSystemservice(CONNECTIVITY_serviCE);
NetworkInfo mMobile = connManager1.getNetworkInfo(Connectivitymanager.TYPE_MOBILE);

if (mMobile.isConnected()) {
    //if internet connected
}

不要忘记在清单文件添加这些权限;

android.permission.CHANGE_WIFI_STATE
android.permission.ACCESS_WIFI_STATE
android.permission.updatE_DEVICE_STATS
android.permission.CHANGE_NETWORK_STATE
android.permission.ACCESS_NETWORK_STATE
android.permission.MODIFY_PHONE_STATE
android.permission.READ_PHONE_STATE

要启用或禁用Wifi,请使用mWiFi.setWifiEnabled(true | falsE)

要启用/禁用GPRS / 3G,请使用以下代码段.

void turnData(Boolean ON) throws Exception
{

if(bv == Build.VERSION_CODEs.FROYO)
{

    Log.i("version:","Found Froyo");
    try{ 
        Method dataConnSwitchmethod;
        Class telephonymanagerClass;
        Object ITelephonystub;
        Class ITelephonyClass;
        Telephonymanager telephonymanager = (Telephonymanager) getApplicationContext().getSystemservice(Context.TELEPHONY_serviCE);

        telephonymanagerClass = Class.forName(telephonymanager.getClass().getName());
    Method getITelephonymethod = telephonymanagerClass.getDeclaredMethod("getITelephony");
    getITelephonymethod.setAccessible(true);
    ITelephonystub = getITelephonymethod.invoke(telephonymanager);
    ITelephonyClass = Class.forName(ITelephonystub.getClass().getName());

    if (ON) {
         dataConnSwitchmethod = ITelephonyClass.getDeclaredMethod("enableDataConnectivity"); 

    } else {
        dataConnSwitchmethod = ITelephonyClass.getDeclaredMethod("disableDataConnectivity");
    }
    dataConnSwitchmethod.setAccessible(true);
    dataConnSwitchmethod.invoke(ITelephonystub);
    }catch(Exception E){
          Log.e("Error:",e.toString());
    }

}
 else
{
   Log.i("version:","Found Gingerbread+");
   final Connectivitymanager conman = (Connectivitymanager) getApplicationContext().getSystemservice(Context.CONNECTIVITY_serviCE);
   final Class conmanClass = Class.forName(conman.getClass().getName());
   final Field iConnectivitymanagerField = conmanClass.getDeclaredField("mservice");
   iConnectivitymanagerField.setAccessible(true);
   final Object iConnectivitymanager = iConnectivitymanagerField.get(conman);
   final Class iConnectivitymanagerClass =  Class.forName(iConnectivitymanager.getClass().getName());
   final Method setMobileDataEnabledMethod = iConnectivitymanagerClass.getDeclaredMethod("setMobileDataEnabled",Boolean.TYPE);
   setMobileDataEnabledMethod.setAccessible(true);
   setMobileDataEnabledMethod.invoke(iConnectivitymanager,ON);
}

}

大佬总结

以上是大佬教程为你收集整理的如何在Android应用程序中提供选择Wi-Fi或GPRS网络连接的选项全部内容,希望文章能够帮你解决如何在Android应用程序中提供选择Wi-Fi或GPRS网络连接的选项所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。