電話がサポートする方法、つまり GSM または CDMA (SIP ではない) を介して。ConnectivityManager を使用してみましたが、完全な信号があるにもかかわらず、wifi に接続すると TYPE_MOBILE の NetworkInfo が !IsConnected を返すようです。
電話をかけることができるかどうかを知りたいので、 TelephonyManager.getDataState は適切ではないと思います。
私の答え
(さらに7時間投稿できません)
正しい方法を完全にチェックしていないだけで、私は正しい場所にいたようです。実際、IsConnected() を返す TYPE_ 接続 (つまり、TYPE_MOBILE、TYPE_WIFI) は 1 つのみであるように思われるため、代わりに接続 IsAvailable() を確認する必要があります。モバイルデータを有効または無効にしてこれをテストしたところ、どちらの場合でも正しい結果が得られました (つまり、モバイル信号がある場合は true、ない場合は false; モバイルデータが有効な場合とない場合の両方)。
注: モバイル データを無効にするには、ICS で [設定] -> [ワイヤレスとネットワーク] -> [その他] -> [モバイル ネットワーク] -> [データを有効にする] に移動します (選択を解除します)。