0

このコードを試して、モバイルネットワークの接続を確認しました

final ConnectivityManager connMgr = (ConnectivityManager) 
        getSystemService(Context.CONNECTIVITY_SERVICE);


        final android.net.NetworkInfo mobile = 
        connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);


        if( mobile.isAvailable() ){
            Toast tst = Toast.makeText(this, "There is a network", Toast.LENGTH_SHORT);
              tst.show();   
                        }
        else
        {
            Toast tst = Toast.makeText(this, "There is No network",Toast.LENGTH_SHORT);
              tst.show();   
        }

プログラムは常に「ネットワークはありません」と表示しますが、ネットワークはあります。2G Sim Cardを使用していて、この方法が3Gで機能するためかもしれません。どんな手掛かり?

4

3 に答える 3

1

データステータスではなく、テレフォニーステータスが必要だと思います。

別のAPIを試してください。

http://developer.android.com/reference/android/telephony/ServiceState.html

これはうまくいくかもしれません。

http://developer.android.com/reference/android/telephony/TelephonyManager.html

同様に便利かもしれません。

于 2012-06-10T21:04:05.797 に答える
0

これを使用してネットワーク接続を確認します。お役に立てば幸いです:)

public static boolean isOnline(Context applicationContext){
    ConnectivityManager cm = (ConnectivityManager) applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE);
    try{ 
        return cm.getActiveNetworkInfo().isConnectedOrConnecting();
    }
    catch(NullPointerException npe){

        return false; //Airplane mode is on
    }
}
于 2012-06-10T20:41:54.937 に答える
0

使用してみてください:

try{

     if(mobile.getState() == NetworkInfo.State.CONNECTED){
          //connected
     }else{
          //not connected
     }

}catch (Exception e){
    // if device doesnt have mobile
}
于 2012-06-10T20:35:51.170 に答える