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 设备详细信息的主要内容,如果未能解决你的问题,请参考以下文章

Android 将设备名称重命名为 wifi-direct

Wifi Direct - 此设备地址不适用于 android 10

WiFi Direct (Android 4.0) 与多个 (3+) 设备双向

WiFi-Direct 在游戏开发中的使用 (Android)

Wifi Direct P2P 无法在 Android 10+ 设备上运行,无法发现设备

将 iPhone 连接到 Android 的 Wifi Direct 软 AP