我花了更多的 1 天時間嘗試從 Android 應用程式連接到 SocketIO,但不能。盡管我可以通過筆記本電腦中的瀏覽器和我的物理設備(已使用<uses-permission android:name="android.permission.INTERNET"/>)訪問本地鏈接,但每次啟動應用程式后,我都無法通過 Android 應用程式連接到 Socket。這是我添加的依賴項gradle:
dependencies{
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
testImplementation 'junit:junit:4. '
implementation ('io.socket:socket.io-client:2.0.0') {
exclude group: 'org.json', module: 'json'
}
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
這是我的代碼MainActivity.java:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import io.socket.client.IO;
import io.socket.client.Socket;
import java.net.URISyntaxException;
public class MainActivity extends AppCompatActivity {
private Socket mSocket;
{
try {
mSocket = IO.socket("http://192.168.1.2:3000/");
} catch (URISyntaxException e) {
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSocket.connect();
}
}
我該怎么辦?
uj5u.com熱心網友回復:
您正在使用 http url 進行連接 在較新的 android 版本上,系統默認阻止 http 流量
要允許 http,請編輯您的 AndroidManifest.xml 并將 android:usesCleartextTraffic="true" 添加到應用程式標記中,如下所示
<application android:usesCleartextTraffic="true">
</application>
▲這個答案如果有幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/363715.html
