2

(この記事のコードを使用して) インターネットにアクセスできるかどうかを確認する方法は知っていますが、電話が電話ネットワークにアクセスできるかどうかを確認することはできますか? たとえば、誰かが Wi-Fi 経由でインターネットにアクセスできても、SMS を送信したり電話をかけたりするための電話ネットワークにアクセスできない場合があります。

私の場合、実際のデバイス (Samsung Galaxy S) を使用しているときに、3G ネットワークをオフにすることができます (その後、電話はインターネットに接続されていないことを検出します) が、電話をかけたり送信したりできます。 SMS。別のネットワークを使用しているに違いないと思います...

電話ネットワークが接続されているかどうかをテストするにはどうすればよいですか? TelephonyManager は必要ですか?

お時間をいただきありがとうございます。

メル

4

2 に答える 2

3

確かにこれを使用しないでください: getNetworkType()

boolean hasNetwork = android.telephony.TelephonyManager.getNetworkType() != android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN; 
// True if the phone is connected to some type of network i.e. has signal
于 2011-04-03T13:03:48.047 に答える
2

上記の回答は、私のアプリ ユーザーの 1 人には機能しませんでした。彼はネットワークに接続していましたが、NetworkType が不明でした。スクリーンショット: http://dl.dropbox.com/u/5072192/SC20130317-161413.png

代わりに NetworkOperator フィールドをチェックしています。(ここの最初の回答から、利用可能なモバイルネットワークを確認する正しい方法は何ですか(データ接続なし)

public static boolean isMobileAvailable(Context acontext) {       
    TelephonyManager tel = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);       
    return (tel.getNetworkOperator() != null && !tel.getNetworkOperator().equals(""));      
}
于 2013-03-17T08:35:18.807 に答える