はOPのために働きました。しかし、いくつかのデバイスで私はそれがデータが無効になっても真実を返すことがわかった。 Android APIにある代替ソリューションが見つかりました。
getDataState()TelephonyManagerの方法は非常に便利です。
以下の関数は、セルラデータが無効な場合はfalseを返します。
private boolean checkMobileDataIsEnabled(Context context){
boolean mobileYN = false;
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
if (tm.getSimState() == TelephonyManager.SIM_STATE_READY) {
TelephonyManager tel = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
// if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1)
// {
// mobileYN = Settings.Global.getInt(context.getContentResolver(), "mobile_data", 0) == 1;
// }
// else{
// mobileYN = Settings.Secure.getInt(context.getContentResolver(), "mobile_data", 0) == 1;
// }
int dataState = tel.getDataState();
Log.v(TAG,"tel.getDataState() : "+ dataState);
if(dataState != TelephonyManager.DATA_DISCONNECTED){
mobileYN = true;
}
}
return mobileYN;
}
優れています!ありがとうブライアン、あなたは私の一日を作った:) – Rick
あなたは、Setttings.Secureに渡すことができるすべての文字列(つまり、 "mobile_data")のリストをどこに見つけることができますか? – gonzobrains
正式に、[ここ](http://developer.android.com/reference/android/provider/Settings.Secure.html)と[ここ](http://developer.android.com/reference/android/provider/ Settings.Global.html)。文書化されていない設定や隠された設定については、core/java/android/provider/Settings.javaのソースを表示する必要があります。ここでは、[http://omapzoom.org/?p=platform/frameworks/base .git; a = blob; f = core/java/android/provider/Settings.java; hb = HEAD)。 – bmaupin