Question

Je sais que WiFi Direct fonctionne en créant un point d'accès logiciel (point d'accès logiciel) dans l'un des appareils.Je sais aussi que beaucoup d'Androids soutiennent WiFi Direct, mais les iPhones ne le font pas.

Ma question est la suivante: est-il possible de créer un lien WiFi de périphérique à périphérique qui est WiFi directement sur le côté Android, mais une connexion Wi-Fi régulière sur le côté iPhone?Lorsque le WiFi direct de Android présenterait un AP doux, que l'iPhone verrait comme indiscernable d'un AP régulier et de pouvoir s'associer à.

Imaginez que cela se trouve dans le désert où aucun routeur AP n'est disponible.En outre, aucun utilisateur n'a de plan d'attachement.

Ce lien serait utilisé par une application de type choc pour transférer des fichiers.

Était-ce utile?

La solution

Selon votre téléphone, vous pouvez simplement configurer votre téléphone Android comme point d'accès portable et vous connecter à celui avec l'iPhone. De là, il serait d'application spécifique pour obtenir des données transférées.

Cependant, vous pouvez également utiliser les bibliothèques WiFi-Direct Androids. Dans ce cas, vous les utiliseriez pour configurer le téléphone Android pour créer un «propriétaire de groupe», qui est essentiellement la même chose qu'elle étant un hotspot portable. Découvrez:

http://developer.android.com/guide/topics/connectivity/wifip2p.htmlle a>

Je vais vous donner un exemple de code pour vous aider à démarrer.

public class WifiDirectAPtestActivity extends Activity 
{
private WifiP2pManager manager;
private boolean isWifiP2pEnabled = false;
private boolean retryChannel = false;

private final IntentFilter intentFilter = new IntentFilter();
private Channel channel;
private BroadcastReceiver receiver = null;

public void setIsWifiP2pEnabled(boolean isWifiP2pEnabled) {
    this.isWifiP2pEnabled = isWifiP2pEnabled;
}
@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
 // add necessary intent values to be matched.

    intentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
    intentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
    intentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
    intentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);

    manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
    channel = manager.initialize(this, getMainLooper(), null);
}
/** register the BroadcastReceiver with the intent values to be matched */
@Override
public void onResume() {
    super.onResume();
    receiver = new WiFiDirectBroadcastReceiver(manager, channel, this);
    registerReceiver(receiver, intentFilter);
    createGroup();
}

@Override
public void onPause() {
    super.onPause();
    unregisterReceiver(receiver);
    manager.removeGroup(channel, new ActionListener() {

        @Override
        public void onFailure(int reasonCode) {
            Log.d("WifiDirectAptestActivity", "Disconnect failed. Reason :" + reasonCode);

        }

        @Override
        public void onSuccess() {
            Log.d("WifiDirectAptestActivity", "Should have been sucessfully removed");
        }

    });
}
public void createGroup()
{
    manager.createGroup(channel, new ActionListener() {

        @Override
        public void onSuccess() {
            // WiFiDirectBroadcastReceiver will notify us. Ignore for now.
            Log.d("WifiDirectAPtestActivity", "Group creating request successfully send");
        }

        @Override
        public void onFailure(int reason) {
            Toast.makeText(WifiDirectAPtestActivity.this, "Connect failed. Retry.",
                    Toast.LENGTH_SHORT).show();
        }
    });
}

En plus, vous aurez besoin du récepteur de diffusion, de regarder la démo WiFi directe et il devrait être clair pour vous.

Notez que Line Manager.Creategroup (Channel, New ActionListener () est la ligne d'intérêt, c'est cette ligne qui définit réellement l'appareil comme point d'accès portable.

J'espère que cela clarifie les choses, je ne sais pas vraiment à quel point l'explication détaillée dont vous avez besoin. Commentaire Si certaines choses ne sont pas claires.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top