如何设置wifi direct的接口设备名称

how to set interface device name of wifi direct

我也有类似的问题post Android WiFi Direct device details 然而,它似乎没有从 post 中得到任何解决方案。

有没有什么方法可以用来设置wifi-direct名称,类似于bluetoohAdapter & NsdServiceInfo中"setName()"或"setServiceName"的功能

您可以使用反射重命名设备 WiFi Direct 名称。在此处查看解决方案:Android rename device's name for wifi-direct

此外,/data/misc/wifi/p2p_supplicant.conf 中有一个名为 p2p_supplicant.conf 的文件,其中包含指定 WiFi Direct 名称的字段。您可以使用我的答案进行编辑,稍作调整:

请注意,您可以在 phone 上手动更改 WiFi Direct 设备的名称,而无需应用程序。 Android phones.

上的 WiFi->Wifi Direct 中有重命名设备选项

希望这对您有所帮助。如果您有任何问题,请告诉我。

我知道这已经晚了。 但你可以试试这个。在这里你必须通过 WifiP2pManager instance alogn 和 WifiP2pManager.Channel instance 以及你想要设置的 custom name

这对我有用,希望对你也有帮助。

    /*
    Set WifiP2p Device Name
     */
    public void setDeviceName(WifiP2pManager manager, WifiP2pManager.Channel channel, String deviceName){
        //set device name programatically
        try {
            Class[] paramTypes = new Class[3];
            paramTypes[0] = WifiP2pManager.Channel.class;
            paramTypes[1] = String.class;
            paramTypes[2] = WifiP2pManager.ActionListener.class;
            Method setDeviceName = manager.getClass().getMethod(
                    "setDeviceName", paramTypes);
            setDeviceName.setAccessible(true);

            Object arglist[] = new Object[3];
            arglist[0] = channel;
            arglist[1] = deviceName;
            arglist[2] = new WifiP2pManager.ActionListener() {

                @Override
                public void onSuccess() {
                }

                @Override
                public void onFailure(int reason) {
                }
            };

            setDeviceName.invoke(manager, arglist);

        }
        catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }