具体代码如下:
public void ChangeDeviceName(final String NewDeviceName){
try {
Log.d(TAG, "进入修改名字");
Method method = mManager.getClass().getMethod("setDeviceName",
WifiP2pManager.Channel.class, String.class, WifiP2pManager.ActionListener.class);
method.invoke(mManager, mChannel, "", new WifiP2pManager.ActionListener() {
public void onSuccess() {
Log.d(TAG, "Change DeviceName Success!");
try {
Log.d(TAG, "进入修改名字");
Method method = mManager.getClass().getMethod("setDeviceName",
WifiP2pManager.Channel.class, String.class, WifiP2pManager.ActionListener.class);
method.invoke(mManager, mChannel, NewDeviceName, new WifiP2pManager.ActionListener() {
public void onSuccess() {
Log.d(TAG, "Change DeviceName Success!");
}
public void onFailure(int reason) {
Log.d(TAG, "Change DeviceName Failed!");
}
});
} catch (Exception e) {
Log.d(TAG, "错误:"+e);
}
}
public void onFailure(int reason) {
Log.d(TAG, "Change DeviceName Failed!"+reason);
}
});
} catch (Exception e) {
Log.d(TAG, "错误:"+e);
}
}
注:
1.其实理论上调用一次函数就可以,但是我只有嵌套调用两次函数才能真正的实现WiFi设备名修改,具体原因也还在学习中。
2.代码中的mManager即主函数中实例化的WifiP2pManager:
mManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
3.代码中的mChannel即主函数中实例化的Channel:
mChannel = mManager.initialize(this, getMainLooper(), null);
——————————————————————————
最后贴一下我的个人公众号:微信搜索“茶迁”或扫描下图。平时会更新一些编程相关的文章,欢迎大家关注~