21

Bluetooth / GSM / CDMA / IRを使用せずに、Wi-Fiで2つのAndroid携帯を接続することは可能ですか? また、ラップトップ、Wi-Fi アクセス ポイント、Wi-Fi ルーターはありません。

両方の電話でいくつかの SSID を作成し、IP アドレスの静的構成を行うことは可能だと思います。Androidは別のAndroid Wi-Fiに接続しますか?

それらが接続される場合、ある電話から別の電話にファイルを送信するにはどうすればよいですか? ftp クライアントとサーバーはありますか? または、他の電話に ssh できますか? それともtelnel/netcat? 多分http?

4

4 に答える 4

18

これはアドホックネットワークと呼ばれ、以前に尋ねられました。

Androidはピアツーピアのアドホックネットワークを実行できますか?

AndroidWifiダイレクトマルチ接続アドホック

Androidアドホック/アクセスポイント接続機能

アップデート:

簡単な答え:アドホックはAndroidでまだサポートされていないため、これは機能しません。

Bluetoothを使用して、2台のAndroidフォンをp2p方式で接続できます。

アップデート2:

Wifiを介したデバイス間の直接接続は、パッケージandroid.net.wifi.p2pのAndroid4.0ICSのAPI14でサポートされています。FEATURE_WIFI_DIRECTを介してデバイスの機能をテストできます。

于 2011-05-13T15:09:16.600 に答える
3

これは、 SDK V 14で実際に可能です。ドキュメントに記載されているように:

  1. Wi-Fi Direct インテントのブロードキャスト レシーバーを作成する
  2. 権限を設定する
  3. onCreate() でレシーバーを設定する
  4. インテント フィルタを設定する
  5. onResume() に受信者を登録する

これを実現するために、いくつかの主要なコード構造を以下に含めました。ただし、詳細についてはドキュメントを参照してください。

ブロードキャスト レシーバーのサンプルを次に示します。

public class WiFiDirectBroadcastReceiver extends BroadcastReceiver {

    private WifiP2pManager manager;
    private Channel channel;
    private MyWiFiActivity activity;

    public WiFiDirectBroadcastReceiver(WifiP2pManager manager, Channel channel,
            MyWifiActivity activity) {
        super();
        this.manager = manager;
        this.channel = channel;
        this.activity = activity;
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) {
            int state = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, -1);
            if (state == WifiP2pManager.WIFI_P2P_STATE_ENABLED) {
                // Wifi Direct is enabled
            } else {
                // Wi-Fi Direct is not enabled
            }
        } else if (WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action)) {
            // Call WifiP2pManager.requestPeers() to get a list of current peers
        } else if (WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION.equals(action)) {
            // Respond to new connection or disconnections
        } else if (WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION.equals(action)) {
            // Respond to this device's wifi state changing
        }
    }
}

権限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
于 2012-11-24T15:00:32.907 に答える
1

その機能を使用したいだけで、独自のアプリに実装したくない場合は、 SuperbeamSend!などのアプリをご覧ください。または、主に WiFi ダイレクトを使用する高速ファイル転送。

ここにいくつかのリンクがあります。

于 2013-09-09T14:17:36.710 に答える
0

Wi-Fi 経由で FTPDroid と Turbo Client に接続してみてください。それか、VPN を設定して、SSH、FTP、SFTP 経由ですべてのデバイスをリモート接続します。

于 2013-09-26T18:19:18.227 に答える