2012-03-12 7 views
0

私はこのコードを使用して、WiFiまたはモバイルネットワークが接続されているかどうかを確認しています。データが有効で有効かどうかを確認します。ユーザーが前払いでクレジットがない場合はどうなりますか?

private boolean isOnline() { 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
     if (netInfo != null && netInfo.isConnected()) { 
      return true; 
     } 
     return false; 
    } 

これは問題なく動作します。しかし、もし私のユーザーが前払いプランになっていても、データのクレジットがないのならどうでしょうか?データが有効になっていてもサーバーからデータをダウンロードしようとするとアプリケーションがクラッシュする場合でも、このメソッドはtrueを返します。このようなことをどうやって確認できますか?

私は、Wi-Fi /モバイルネットワークが利用可能な場合でも、サーバーにアクセスするアプリケーションを停止させる可能性があると思います。

答えて

0

モバイルプラットフォームとして、Androidでのインターネットアクセスは、本質的に信頼性がありません。あなたが気づき始めている間、間欠的なデータアクセスを許容するようにあなたのアプリを書くべきです。

あなたはいくつかの例外をキャッチしていますが、それらを処理していません。つまり、あなたのアプリケーションは、例外が発生しなかったかのように例外を越えて行き、httpClientオブジェクトが無効な状態で、あなたが捕まえていない例外があります。

1

とにかくクラッシュしないでください。あなたのダウンロードコードは、そのような問題を処理するためにtry-catchを使用する必要があります。ダウンロード中の通信の問題も可能です。

関連する問題