Подтвердить что ты не робот

Соедините два телефона Android с Wi-Fi (без ноутбука или точки доступа) и отправьте файл

Можно ли подключить два телефона Android по Wi-Fi, не используя bluetooth/GSM/CDMA/IR? Кроме того, нет ни портативных, ни беспроводных точек доступа, ни маршрутизаторов wi-fi.

Я думаю, что на обоих телефонах можно создать некоторый SSID, сделать статическую настройку IP-адресов. Будет ли андроид подключаться к другому андроиду wi-fi?

Если они будут подключены, как я могу отправить файл с одного телефона на второй? Есть ftp-клиент и сервер? или Могу ли я ssh на другой телефон? Или telnel/netcat? Может быть, http?

4b9b3361

Ответ 1

Это называется ad hoc network и было задано до:

Может ли Android сделать одноранговую сеть ad-hoc?

Android Wifi с прямым множественным подключением

Возможности подключения ad-hoc/точки доступа Android

Update:

Короткий ответ: ad hoc пока не поддерживается на Android, так что это не сработает.

Вы можете использовать Bluetooth для подключения двух телефонов Android в режиме p2p.

Обновление 2:

Прямое подключение устройства к устройству через Wi-Fi поддерживается в API 14 в Android 4.0 ICS в пакете android.net.wifi.p2p, Вы можете проверить возможности устройств через FEATURE_WIFI_DIRECT.

Ответ 2

Это возможно с помощью SDK V 14. Как документы:

  • Создайте широковещательный приемник для прямых целей Wi-Fi.
  • Настройка прав доступа
  • Настройте приемник в onCreate()
  • Настроить фильтр намерений
  • Зарегистрировать приемник в onResume()

Я включил некоторые из конструкций key code ниже, чтобы это произошло. Но прочитайте документацию для получения дополнительной информации.

Здесь пример широковещательного приемника

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 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" />

Ответ 3

Если вы просто хотите использовать эту функцию, а не реализовывать ее в собственном приложении, посмотрите на Приложения, такие как Superbeam, Отправить! или Fast File Transfer, которые в основном используют WiFi напрямую.

Вот несколько ссылок.

Ответ 4

Попробуйте подключиться к FTPDroid и Turbo Client через Wi-Fi. Либо это, либо настроить VPN и подключить все ваши устройства удаленно через SSH, FTP и/или SFTP.