[英]Check if 3g,4g is connected android
我正在使用下面的代码来检查手机或平板电脑上是否有任何类型的连接。 WiFi和GPRS都可以正常工作。 不幸的是,我没有3g访问权限,因此无法检查此代码是否正常工作。 如果有人可以确认吗? 对电池寿命有多大影响?
private boolean chkConnectivity() {
boolean isConnected = false;
ConnectivityManager connManager = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
android.net.NetworkInfo mobile = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if( mobile.isAvailable() && mobile.getDetailedState() == NetworkInfo.DetailedState.CONNECTED ){
Toast.makeText(ctx, "3g", Toast.LENGTH_SHORT).show();
return true;
}
if (mWifi.isAvailable() && mWifi.getDetailedState() == NetworkInfo.DetailedState.CONNECTED ) {
Toast.makeText(ctx, "WiFi", Toast.LENGTH_SHORT).show();
return true;
}
try {
TelephonyManager mgr = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
int networkType = mgr.getNetworkType();
if (networkType == TelephonyManager.NETWORK_TYPE_GPRS){
Class cmClass = Class.forName(connManager.getClass().getName());
Method method = cmClass.getDeclaredMethod("getMobileDataEnabled");
method.setAccessible(true);
isConnected = (Boolean)method.invoke(connManager);
if (isConnected){
Toast.makeText(ctx, "GPRS", Toast.LENGTH_SHORT).show();
return isConnected;
}
}
Toast.makeText(ctx, "No connection", Toast.LENGTH_SHORT).show();
return isConnected;
} catch (Exception e) {
return false;
}
}
对不起,我来晚了。
这就是您的应用程序运行的方式。 没问题
没有数据
有数据
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.