簡體   English   中英

無法使用 Android 應用程序連接到套接字

[英]Cannot connect to socket with Android App

我花了更多時間嘗試從 Android App 連接到 SocketIO 但不能。 雖然我可以通過筆記本電腦和物理設備中的瀏覽器訪問本地鏈接(使用<uses-permission android:name="android.permission.INTERNET"/> ),但每次啟動后我都無法通過 Android App 連接到 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();
    }
}

我應該怎么辦?

您正在使用 http url 進行連接 在較新的 android 版本 Z80791B3AE7002FACB88C246876 系統默認阻止流量

要允許 http,請編輯您的 AndroidManifest.xml 並將 android:usesCleartextTraffic="true" 添加到這樣的應用程序標簽

<application android:usesCleartextTraffic="true">
</application>

▲ 這個答案是否有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM