2014-10-30 121 views
8

在P2P設置中,我瞭解如何獲取其他設備的名稱,但我如何獲取自己的設備名稱? (在WiFi-direct下顯示的設置)。Android:如何獲取當前設備WiFi-direct名稱

我檢查了WiFiManagerWiFiInfo,以及更多沒有成功。

+0

你能編輯你的問題和顯示代碼嗎? – Raptor 2014-10-30 02:26:40

+0

不知道要添加什麼...我想要做的就是訪問設備的名稱,類似於藍牙,你可以調用'BluetoothAdapter.getDefaultAdapter()。getName()' – 2014-10-30 02:34:07

+0

'WifiP2pDevice.deviceName'?請參閱[本](http://developer.android.com/training/connect-devices-wirelessly/nsd-wifi-direct.html) – Raptor 2014-10-30 03:07:29

回答

0

試試這個代碼:

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; 
    } 
} 
+1

您應該說明您的代碼。 – Raptor 2014-10-31 02:16:59

10

你打開設備上的WiFi後,是發送一個廣播WIFI_P2P_THIS_DEVICE_CHANGED_ACTION。你可以用廣播接收器來捕捉這個,你可以得到一個WifiP2pDevice對象,這就是你的設備。

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

如果wifi已經打開,該怎麼辦? – 2015-01-27 13:04:29

+1

當您註冊WifiP2pBroadcastReceiver時,您將收到此電話,WiFi已經打開並不重要。 – Jonathan 2015-02-11 22:41:05

+0

'device'爲null,因此得到'NullPointerException' – Touhid 2017-07-13 14:29:30