質問

私は、WiFi Directがデバイスの1つでソフトAP(ソフトウェアアクセスポイント)を作成することによって機能することを知っています。私はまた多くのAndroidsがWiFiを直接サポートしていることも知っていますが、iPhoneはそうではありません。

私の質問は:Android側にWiFi直接のデバイスへのWiFiリンクを作成することは可能ですが、iPhone側に通常のWiFiは?AndroidのWiFiが直接DirectがソフトAPを提示し、iPhoneは通常のAPとの区別がつかなく、関連付けられていることがわかります。

これは、ルータAPが利用可能でないWILDERNESSに出ていると想像してください。また、どちらのユーザーもテザリングプランを持っていません。

このリンクはファイルを転送するためのバンプのようなアプリによって使用されます。

役に立ちましたか?

解決

あなたの携帯電話に応じて、あなたのAndroid携帯電話をポータブルホットスポットとして設定し、iPhoneと接続することができます。そこからデータが転送されたデータを取得するためのアプリケーションになるでしょう。

しかし、Android Wifi直接ライブラリを使用することもできます。その場合、それらを使用してAndroid携帯電話を設定して「グループ所有者」を作成します。これは、基本的にはポータブルホットスポットであると同じです。チェックアウト:

http://developer.android.com/guide/topics/connectivity/wifip2p.html

あなたが始めるのを助けるためのコード例をあなたに与えます。

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();
        }
    });
}
.

さらに放送受信機が必要です.Wifi直接デモを見てください。それはあなたに明確になるはずです。

Line Manager.Creategroup(Channel、New ActionListener()は興味のコードラインであり、実際にはデバイスをポータブルホットスポットとして設定するこの行です。

これが物事を明確にすることを願っています、私はあなたが必要な説明がどのように必要なかどうかはわかりません。いくつかのものが明確ではない場合はコメントしてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top