私はここに新たなんです。私は、サーバーにいくつかのデータを送信し、同様の応答を受信するシンプルなアプリを構築しました。
アプリは、Android N.へのデバイスまでに正常に動作しかし、OおよびPに動作していない問題がインターネットの許可を得ているように思えます。私がチェックしていると、それはo及びp上で実行されている間、アプリケーションはサーバーにデータを送信していません。私はインターネットアクセスのための任意の特定の許可を求める必要がある場合は私に知らせてください。
私はマニフェストにこれを追加しました
<uses-permission android:name="android.permission.INTERNET" />
任意の助けいただければ幸いです。
それはおそらくあなたが使用しているのでhttp
。アンドロイドOから始めて、あなたが使用する必要があるhttps
のではなく、http
またはエラーが発生していますCleartext HTTP traffic to * not permitted
。だから、あなたはこれを許可する設定を作成する必要があります。あなたはそれを参照することができ、クリアテキストトラフィックのオプトアウト
ドキュメントの詳細:
注:このセクションのガイダンスは、Android 8.1(APIレベル27)を標的と以下のアプリケーションにのみ適用されます。アンドロイド9(APIレベル28)から開始し、クリアテキストのサポートはデフォルトで無効になっています。
唯一の安全な接続を使用して宛先に接続しようとするアプリケーションは、オプトアウトすることができ、それらの宛先に(代わりにHTTPSの暗号化されていないHTTPプロトコルを使用して)平文をサポートします。このオプションでは、そのようなバックエンドサーバなどの外部ソースから提供するURLの変更にアプリで不慮の回帰を防ぐことができます。参照してください
NetworkSecurityPolicy.isCleartextTrafficPermitted()
詳細については。たとえば、アプリはすべての接続がしていることを確認したい場合があり
secure.example.com
、常に敵対的なネットワークから機密トラフィックを保護するためにHTTPSを介して行われます。
res/xml/network_security_config.xml
:<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">secure.example.com</domain> </domain-config> </network-security-config>
。
また、使用することができandroid:usesCleartextTraffic="true"
、あなたの中にAndroidManifest.xml
あなたの開発モードのためではなく、あなたはリリースモードでは使用しないでください。で、それについての詳細Androidデベロッパーブログ、ここに抜粋:
生産のクリアテキストトラフィックをブロック
クリアテキストトラフィックへの回帰に対するあなたのアプリのインストールベースを保護するために、Androidの宣言:usesCleartextTraffic =」false」属性を、アプリのAndroidManifest.xmlにのアプリケーション要素に。これは、アプリはクリアテキストのネットワークトラフィックを使用することになっていないことを宣言し、Androidのマシュマロのプラットフォームネットワークスタックがアプリでクリアテキストトラフィックをブロックします。あなたのアプリが誤って平文のHTTPリクエストを介して、ユーザに署名しようとした場合、要求はブロックされ、ユーザーのIDとパスワードがネットワークにリークされません。
usesCleartextTraffic:あなたは23(Androidのマシュマロ)にアプリを使用するには、AndroidのminSdkVersionがまたはtargetSdkVersionを設定する必要はありません。古いプラットフォームでは、この属性は無視されますので、効果はありません。
WebViewのは、まだこの機能を尊重しませんのでご注意ください。
そして、特定の状況下でクリアテキストトラフィックはまだ残したり、アプリを入力することができます。それが送信または受信したデータがクリアテキストとして分類することができるかどうかわからないので、例えば、ソケットAPIは、平文のポリシーを無視します。彼らは、トラフィックがクリアテキストであるかどうかを知っているので、AndroidプラットフォームHTTPスタックは、他の一方で、政策を称えます。
GoogleのAdMobのもこの方針を称えるために構築されています。あなたのアプリは、それがクリアテキストトラフィックを使用しないことを宣言した場合、唯一のHTTPSのみの広告がアプリに提供する必要があります。
サードパーティのネットワークは、広告、および分析ライブラリは、このポリシーのサポートを追加することをお勧めします。彼らはNetworkSecurityPolicyクラスを経由してクリアテキストトラフィックポリシーを照会することができます。