2013-10-28 5 views
16

ACCESS_NETWORK_STATEとINTERNETの違いは何ですか?ACCESS_NETWORK_STATEとINTERNETの違いは何ですか?

インターネットを使用している場合は、ACCESS_NETWORK_STATEを使用する必要がありますか?

つまり、ACCESS_NETWORK_STATEを使用せずにINTERNETを使用できますか?

+5

[インターネット](http://developer.android.com/reference/android/Manifest.permission.html#INTERNET)と[ACCESS_NETWORK_STATE](http://developer.android.com/reference/android/Manifest)。 permission.html#ACCESS_NETWORK_STATE) – dymmeh

答えて

23

を処理しなければならない例外のいくつかの並べ替えを取得します:

ACCESS_NETWORK_STATEを:

アプリケーションがネットワーク

INTERNETに関する情報にアクセスできるようにします:

は、アプリケーションがネットワークソケットを開くことができます。要するに

INTERNET許可がACCESS_NETWORK_STATEはちょうどそのようなあなたがすべてでネットワークに接続されているかどうかなど、あなたのネットワークに関する情報を与えるのに対し、あなたは、インターネットを使用することができます。

どちらか一方を使用しなくてもどちらでも使用できます。インターネットを使用する前に有効なネットワーク接続があるかどうかを確認しないと、HTTPリクエストは失敗します。

+0

ええ、もちろん、ネットワークソケットを開けるのであれば、インターネット接続があるかどうかを確認する必要があります。 – Mageek

+1

@Mageek接続があるかどうかを確認する必要はありません。要求が失敗した場合や何もしない場合は – tyczj

+0

ありがとうございます。それは私の答えです。あなたの答えに追加できますか?それを受け入れますか? – Mageek

2

INTERNETは

ACCESS_NETWORK_STATEは、あなたがある場合は、ネットワークが接続されたりしませ

されている場合も、あなたは確認することができますネットワーク(無線LAN、3G、4G)の状態を取得することができますあなたがインターネットを使用することができますいいえ、インターネットHTTPリクエストが失敗しますと、あなたがthe documentationから

6
android.permission.INTERNET 

は、インターネット(ウェブサービスに接続するか、webViewでウェブページを表示する)を使用するだけで十分です。

android.permission.ACCESS_NETWORK_STATE 

は、インターネットを使用する前にネットワーク状態のステータスを照会するのに「いいです」です。

+0

*ネットワーク状態を問い合わせる*がありますか? HTTPリクエストが失敗したときにスローされた例外を捕捉するのに十分ではありませんか? –

+2

いいえネットワーク状態を照会する必要はありません。 ACCESS_NETWORKの使用例:あなたのアプリケーションでは、大量のデータをアップロード/ダウンロードしたいのですが、ユーザーがwi-fi経由で接続している場合(モバイルデータパケットをユーザーに費やしたくない場合)この許可を持つステータス。 – Devrim

関連する問題