2014-10-30 9 views
8

पी 2 पी सेटिंग में, मैं समझता हूं कि किसी अन्य डिवाइस का नाम कैसे प्राप्त करें, लेकिन मैं अपना डिवाइस का नाम कैसे प्राप्त करूं? (एक सेटिंग के तहत वाईफाई-सीधी में प्रदर्शित)।एंड्रॉइड: वर्तमान डिवाइस कैसे प्राप्त करें वाईफाई-सीधा नाम

मैंने WiFiManager, WiFiInfo की जांच की है, और बिना किसी सफलता के।

public static String getHostName(String defValue) { 
    try { 
     Method getString = Build.class.getDeclaredMethod("getString", String.class); 
     getString.setAccessible(true); 
     return getString.invoke(null, "net.hostname").toString(); 
    } catch (Exception ex) { 
     return defValue; 
    } 
} 
+0

क्या आप अपना प्रश्न संपादित कर सकते हैं और कोड दिखा सकते हैं? – Raptor

+0

यह सुनिश्चित नहीं है कि क्या जोड़ना है ... मैं बस इतना करना चाहता हूं कि डिवाइस के नाम तक पहुंचें, ब्लूटूथ के समान, जहां आप 'BluetoothAdapter.getDefaultAdapter() को कॉल करेंगे। GetName() ' –

+0

' WifiP2pDevice.deviceName'? [यह] देखें (http://developer.android.com/training/connect-devices-wirelessly/nsd-wifi-direct.html) – Raptor

उत्तर

0

इस कोड का प्रयास करें। आप इसे प्रसारण रिसीवर के साथ पकड़ सकते हैं और आप एक WifiP2pDevice ऑब्जेक्ट प्राप्त कर सकते हैं, यह आपका डिवाइस है।

@Override 
public void onReceive(Context context, Intent intent) { 
    WifiP2pDevice device = intent.getParcelableExtra(WifiP2pManager.EXTRA_WIFI_P2P_DEVICE); 
    String thisDeviceName = device.deviceName; 
} 
+1

होस्ट करते समय प्रसारित किया जाएगा, आपको अपने कोडों को समझा जाना चाहिए। – Raptor

10

के बाद आप अपने डिवाइस पर वाईफ़ाई पर बारी, यह एक WIFI_P2P_THIS_DEVICE_CHANGED_ACTION प्रसारण भेजें है:

+1

क्या होगा अगर वाईफाई पहले से चालू हो? –

+1

जब आप वाईफाईपी 2 पी ब्रॉडकास्ट रिसीवर के लिए पंजीकरण करते हैं तो आपको यह कॉल मिल जाएगी, इससे कोई फर्क नहीं पड़ता कि वाईफाई पहले से चालू है या नहीं। – Jonathan

+0

'डिवाइस' शून्य है, इसलिए 'NullPointerException' प्राप्त हो रहा है – Touhid

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