Est-il possible de connecter deux téléphones Android par wi-fi, sans utiliser de bluetooth/GSM/CDMA/IR? En outre, il n'y a pas de points d'accès pour ordinateur portable ou wi-fi ni de routeurs wi-fi.
Je pense qu’il est possible de créer un SSID sur les deux téléphones, effectuez une configuration statique des adresses IP. Est-ce qu'Android va se connecter à une autre connexion wi-fi?
S'ils seront connectés, comment puis-je envoyer un fichier d'un téléphone à l'autre? Existe-t-il un client et un serveur ftp? ou puis-je ssh à un autre téléphone? Ou telnel/netcat? Peut-être http?
Ceci s'appelle réseau ad hoc et a déjà été demandé:
Est-ce qu'Android peut faire du réseautage ad-hoc entre homologues?
Connexion Wifi directe directe ad-hoc Android Wifi
Fonctionnalités de connexion ad hoc/points d'accès Android
Mettre à jour:
Réponse courte: ad hoc n'est pas encore pris en charge sur Android, donc cela ne fonctionnerait pas.
Vous pouvez utiliser Bluetooth pour connecter deux téléphones Android en mode P2P.
Mise à jour 2:
La connexion directe de périphérique à périphérique via Wifi est prise en charge sous API 14 dans Android 4.0 ICS dans le package Android.net.wifi.p2p . Vous pouvez tester les capacités des appareils via FEATURE_WIFI_DIRECT .
C'est effectivement possible avec SDK V 14 . En tant que les documents indiquer:
J'ai inclus certaines des constructions de code clé ci-dessous pour y arriver. Mais lisez la documentation pour plus d'informations.
Voici un exemple de récepteur de diffusion
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
}
}
}
Permissions:
<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" />
Essayez de vous connecter avec FTPDroid et Turbo Client via wifi. Soit cela, soit configurer un VPN et connecter tous vos appareils à distance via SSH, FTP et/ou SFTP.