Androidと通信できないトラブルシューティング方法
簡単なgetでも手に入らない症状 val client = OkHttpClient()
val url = "http://(url 어쩌고)"
val request: Request = Request.Builder()
.url(url)
.get()
.build();
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
runOnUiThread{ Log.d("test","failt")}
}
@Throws(IOException::class)
override fun onResponse(call: Call, response: Response) {
if (response.isSuccessful) {
val myRequest = response.body!!.string()
runOnUiThread { Log.d("testRequest", myRequest) } // 통신 결과 값
}
}
})
このようにokhttpClientを使うと,無限の単純な通信コードが破壊される.
解決策
チームメンバーがソリューションを提案しました.
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
このコードをに追加します.
network_security_config.xml
ファイルの作成<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true"/>
</network-security-config>
入力したconfigコード.
やり直す
AndroidManifest.xml
戻る<use-permission>
下<application
android:networkSecurityConfig="@xml/network_security_config">
加入する.では、通信が正常に完了しました.
myRequest値はjson形式で受信できます.
本当に何時間も苦労しましたね.本当にコードしにくいですね.
追加
アンドロイドシステムが9を超えてはいけない現象だった.
これを入れても通信で確認できません.javax.net.ssl.SSLHandshakeException: Chain validation failed
エラーが発生したので、avd cold bootで実行すればいいです.
Reference
この問題について(Androidと通信できないトラブルシューティング方法), 我々は、より多くの情報をここで見つけました
https://velog.io/@lamknh/맥북-m1에서-안드로이드-통신이-안되는-증상-해결법
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
val client = OkHttpClient()
val url = "http://(url 어쩌고)"
val request: Request = Request.Builder()
.url(url)
.get()
.build();
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
runOnUiThread{ Log.d("test","failt")}
}
@Throws(IOException::class)
override fun onResponse(call: Call, response: Response) {
if (response.isSuccessful) {
val myRequest = response.body!!.string()
runOnUiThread { Log.d("testRequest", myRequest) } // 통신 결과 값
}
}
})
チームメンバーがソリューションを提案しました.
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
このコードをに追加します.network_security_config.xml
ファイルの作成
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true"/>
</network-security-config>
入力したconfigコード.やり直す
AndroidManifest.xml
戻る
<use-permission>
下<application
android:networkSecurityConfig="@xml/network_security_config">
加入する.では、通信が正常に完了しました.myRequest値はjson形式で受信できます.
本当に何時間も苦労しましたね.本当にコードしにくいですね.
追加
アンドロイドシステムが9を超えてはいけない現象だった.
これを入れても通信で確認できません.javax.net.ssl.SSLHandshakeException: Chain validation failed
エラーが発生したので、avd cold bootで実行すればいいです.
Reference
この問題について(Androidと通信できないトラブルシューティング方法), 我々は、より多くの情報をここで見つけました
https://velog.io/@lamknh/맥북-m1에서-안드로이드-통신이-안되는-증상-해결법
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
javax.net.ssl.SSLHandshakeException: Chain validation failed
Reference
この問題について(Androidと通信できないトラブルシューティング方法), 我々は、より多くの情報をここで見つけました https://velog.io/@lamknh/맥북-m1에서-안드로이드-통신이-안되는-증상-해결법テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol