Is it possibile to change the device name of WiFi direct through the code? I've tried to:
private WifiP2pDevice wDevice;
wDevice.deviceName = "newName";
But, obviously it doesn't work. Any idea?!
Is it possibile to change the device name of WiFi direct through the code? I've tried to:
private WifiP2pDevice wDevice;
wDevice.deviceName = "newName";
But, obviously it doesn't work. Any idea?!
On
This code works for me.
WifiP2pManager manager;
WifiP2pManager.Channel channel;
try {
manager = (WifiP2pManager)getSystemService(Context.WIFI_P2P_SERVICE);
channel = manager.initialize(this, getMainLooper(), new WifiP2pManager.ChannelListener() {
@Override
public void onChannelDisconnected() {
manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
}
});
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] = devName;
arglist[2] = new WifiP2pManager.ActionListener() {
@Override
public void onSuccess() {
Log.d("setDeviceName succeeded", "true");
}
@Override
public void onFailure(int reason) {
Log.d("setDeviceName failed", "true");
}
};
setDeviceName.invoke(manager, arglist);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
On
if (action.equals(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION))
{
WifiP2pDevice device = intent.getParcelableExtra(WifiP2pManager.EXTRA_WIFI_P2P_DEVICE);
// device.deviceName
}
this code works
Reference- How to get wifi direct devices name from WifiP2pDeviceList
Following code use Reflection api of Java,It is less preferrable due to lack of efficiency but Android does not provide another way so, You can use it works with charm :