use*_*025 3 android wifi-direct
我正在尝试检索Android设备的MAC地址.如果启用了WiFi,通常可以通过WiFiManager API实现.
如果WiFi关闭且WiFi Direct打开,有没有办法获取MAC地址?WiFi和WiFi Direct无法在手机上同时打开.
谢谢
Har*_*dhi 10
我在项目期间一直在寻找这个.我的要求是在使用WiFi Direct形成的adhoc P2p网络中唯一识别设备.每个设备在下次接近时都应该识别其朋友设备.我需要自己的WiFi(Direct)MAC和我的朋友们为这个朋友区域创建创建一个Key.
我的研究:设计的方式是有一个唯一的通用ID和一个本地ID.原因:通用ID只能用于连接到基础架构模式网络.本地ID可用于"ad-hoc"模式网络(设备到设备).在这种ad-hoc模式中,单个设备可能同时属于几个ad-hoc组.
但是,没有直接的方法来获得自己的WiFi P2p MAC地址.问题53437:Android.
在本期讨论中,谷歌的项目成员建议这是可能的,只是没有记录
解决方案:使用意图过滤器
WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION和意图中的额外过滤器WifiP2pManager.EXTRA_WIFI_P2P_DEVICE
这是我在我的项目中使用它的方式:
@Override
public void onReceive(Context context, Intent intent) {
....
....
String action = intent.getAction();
if (WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION
.equals(action)) {
WifiP2pDevice device = (WifiP2pDevice) intent
.getParcelableExtra(WifiP2pManager.EXTRA_WIFI_P2P_DEVICE);
String myMac = device.deviceAddress;
Log.d(TAG, "Device WiFi P2p MAC Address: " + myMac);
/* Saving WiFi P2p MAC in SharedPref */
sharedPref = context.getSharedPreferences(context.getString(R.string.sp_file_name), Context.MODE_PRIVATE);
String MY_MAC_ADDRESS = sharedPref.getString(context.getString(R.string.sp_field_my_mac), null);
if (MY_MAC_ADDRESS == null || MY_MAC_ADDRESS != myMac) {
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString(context.getString(R.string.sp_field_my_mac), myMac);
editor.commit();
}
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人!
| 归档时间: |
|
| 查看次数: |
5317 次 |
| 最近记录: |