8

Wifi-Direct 経由でピアへの接続を終了する方法はありますか? cancelConnect と removeGroup を試しました。両方とも忙しいですか?ありがとう。

4

1 に答える 1

13

これは、ピアから切断するために使用している方法です。ログから、アンドロイドの組み込みアプリも同じ方法を使用してピアを切断していることに気付きました。

public static void disconnect() {
    if (mManager != null && mChannel != null) {
        mManager.requestGroupInfo(mChannel, new GroupInfoListener() {
            @Override
            public void onGroupInfoAvailable(WifiP2pGroup group) {
                if (group != null && mManager != null && mChannel != null) {
                    mManager.removeGroup(mChannel, new ActionListener() {

                        @Override
                        public void onSuccess() {
                            Log.d(TAG, "removeGroup onSuccess -");
                        }

                        @Override
                        public void onFailure(int reason) {
                            Log.d(TAG, "removeGroup onFailure -" + reason);
                        }
                    });
                }
            }
        });
    }
}

編集 2020 年 1 月 12 日: if ステートメントから isGroupOwner() を削除しました。これにより、所有者以外のデバイスがこの同じ方法を使用して切断できるようになります。

所有者以外が切断すると、新しい WifiP2pInfo に次のように表示されます。

groupFormed: false isGroupOwner: false groupOwnerAddress: null

WifiP2pInfo は次の場所から見つけることができます。

(1)WIFI_P2P_CONNECTION_CHANGED_ACTIONエキストラから WifiP2pInfo をリッスンして取得する放送受信機を登録するEXTRA_WIFI_P2P_INFO

(2) お電話でWifiP2pManager#requestConnectionInfo

于 2013-09-13T18:16:13.963 に答える