Android WiFi Direct 设备详细信息
Posted
技术标签:
【中文标题】Android WiFi Direct 设备详细信息【英文标题】:Android WiFi Direct device details 【发布时间】:2012-05-16 21:42:03 【问题描述】:我想知道如何更改 android 设备的 WiFi Direct 接口的设备详细信息(例如接口名称)。
我正在开发一个应用程序,它使用蓝牙或 WiFi Direct 技术进行无线通信,它只连接到以特定前缀命名的设备,以区分那些运行我的应用程序的设备,以及那些只有接口的设备(我知道这是一个天真的解决方案...... :))。
蓝牙允许使用BluetoothAdapter
类提供的setName(String name)
和getName()
方法来操作接口的名称,但我相信WiFi Direct 不存在相应的方法。
如果不可能,我如何区分那些运行我的应用程序的 WiFi Direct 设备,以及那些只打开接口的设备?
任何帮助表示赞赏。
谢谢。
【问题讨论】:
也许你应该看看这个已经回答的问题:[Get WIFI interface name on android][1] [1]: ***.com/questions/5980826/… 感谢您的回复!在那个问题中,他们谈到了在 Android 上获取 Wifi 接口名称的解决方案,而我正在寻找在 Android 上设置 Wifi Direct 接口名称的解决方案! 你可能想使用类似developer.android.com/training/connect-devices-wirelessly/…的一些服务发现@ 【参考方案1】:Wi-Fi direct Name为设备名称,可通过以下方式更改:
public void changeWiFiDirectName(final String newName)
Method m = null;
try
m = mManager.getClass().getMethod("setDeviceName", new Class[]mChannel.getClass(), String.class, WifiP2pManager.ActionListener.class);
catch (NoSuchMethodException e)
e.printStackTrace();
try
if (m != null)
m.invoke(mManager, mChannel,newName, new WifiP2pManager.ActionListener()
@Override
public void onSuccess()
Log.d(TAG, "Name changed to "+newName);
@Override
public void onFailure(int reason)
Log.d(TAG, "The name was not changed");
);
catch (IllegalAccessException e)
e.printStackTrace();
catch (InvocationTargetException e)
e.printStackTrace();
【讨论】:
以上是关于Android WiFi Direct 设备详细信息的主要内容,如果未能解决你的问题,请参考以下文章
Wifi Direct - 此设备地址不适用于 android 10
WiFi Direct (Android 4.0) 与多个 (3+) 设备双向
WiFi-Direct 在游戏开发中的使用 (Android)