2012-10-02 10 views
13

से कनेक्ट करें मुझे पता है कि वाईफ़ाई डायरेक्ट डिवाइसों में से एक में सॉफ्ट सॉफ्ट (सॉफ़्टवेयर एक्सेस पॉइंट) बनाकर काम करता है। मुझे यह भी पता है कि कई Androids वाईफ़ाई डायरेक्ट का समर्थन करते हैं, लेकिन iPhones नहीं करते हैं।आईफोन को एंड्रॉइड के वाईफ़ाई डायरेक्ट सॉफ्ट एपी

मेरा सवाल है: क्या एंड्रॉइड पक्ष पर वाईफ़ाई डायरेक्ट है, लेकिन आईफोन की तरफ नियमित वाईफाई डिवाइस डिवाइस से डिवाइस वाईफाई लिंक बनाना संभव है? जहां एंड्रॉइड का वाईफ़ाई डायरेक्ट एक सॉफ्ट एपी पेश करेगा, जो आईफोन नियमित एपी से अलग नहीं होगा और इसमें सहयोग करने में सक्षम होगा।

कल्पना कीजिए कि यह जंगल में बाहर है जहां कोई राउटर एपी उपलब्ध नहीं है। इसके अलावा, न तो उपयोगकर्ता को टेदरिंग योजना है।

यह लिंक फ़ाइलों को स्थानांतरित करने के लिए एक टक्कर जैसी ऐप द्वारा उपयोग किया जाएगा।

+0

ग्रीटिंग विचार .... उत्तर देने के लिए तत्पर हैं ... –

+0

मुझे नहीं लगता कि यह संभव है, कम से कम नहीं सेट किए बिना मोबाइल हॉटस्पॉट –

+0

संबंधित प्रश्न: http://stackoverflow.com/questions/9799804/is-wi-fi-direct-connection-possible-within-ios-devices-and-among-wifi-direct-ena – AlcubierreDrive

उत्तर

7

अपने फोन के आधार पर आप अपने एंड्रॉइड फोन को एक पोर्टेबल हॉटस्पॉट के रूप में स्थापित कर सकते हैं और आईफोन के साथ उससे कनेक्ट कर सकते हैं। वहां से डेटा स्थानांतरित करने के लिए यह विशिष्ट होगा।

हालांकि आप एंड्रॉइड वाईफाई-डायरेक्ट लाइब्रेरीज़ का भी उपयोग कर सकते हैं। उस स्थिति में आप उन्हें "समूह स्वामी" बनाने के लिए एंड्रॉइड फोन सेट अप करने के लिए उपयोग करेंगे, जो मूल रूप से पोर्टेबल हॉटस्पॉट जैसा ही है। देखें:

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

इसके अलावा आप वाईफ़ाई प्रत्यक्ष प्रदर्शन को देखने के प्रसारण रिसीवर की आवश्यकता होगी, और यह आप के लिए स्पष्ट किया जाना चाहिए।

ध्यान दें कि लाइन manager.createGroup (चैनल, नई ActionListener() ब्याज की codeline है, यह इस लाइन है कि वास्तव में एक पोर्टेबल हॉटस्पॉट के रूप में डिवाइस सेट करता है।

आशा इस चीजें स्पष्ट किया, मैं ' टी वास्तव में आपको कितनी विस्तृत स्पष्टीकरण की आवश्यकता है। टिप्पणी करें अगर कुछ चीजें स्पष्ट नहीं हैं।

+0

मैं आपके उदाहरण कोड को आईफोन को जोड़ने के मेरे उपयोग के मामले में काम करने की कोशिश करूंगा। अगर मुझे परेशानी होती है तो मैं प्रश्नों के साथ टिप्पणी करूंगा और जब मैं सफल हूं तो मैं आपका जवाब स्वीकार करूंगा। अनेक अनेक धन्यवाद! :) – AlcubierreDrive

+0

यह एक पंक्ति की तरह दिखता है जो महत्वपूर्ण है "manager.createGroup (चैनल, नया एक्शन लिस्टनर() {लॉगिंग कोड}"। आपके उत्तर में उस पंक्ति को स्पष्ट रूप से हाइलाइट करना अच्छा हो सकता है ताकि पाठकों को wade नहीं करना पड़े कुंजी लाइन खोजने के लिए लंबे बॉयलरप्लेट के माध्यम से। – AlcubierreDrive

+0

हां, क्षमा करें, मुझे लगता है कि मुझे यह करना चाहिए था। आपकी परियोजना के साथ शुभकामनाएं! :) –

संबंधित मुद्दे