修改服务器端Miracast的设备名称
frameworks/opt/net/wifi/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
public final class WifiP2pServiceImpl extends IWifiP2pManager.Stub {
...
String id = Settings.Secure.getString(mContext.getContentResolver(),
Settings.Secure.ANDROID_ID);
// return "Android_" + id.substring(0,4);
return "My_Device_Name_" + id.substring(0,4);
}
代码里重置p2p设备名称设置 settings里面
WifiP2pManager mwifip2pmanager=(WifiP2pManager)getSystemService(Context.WIFI_P2P_SERVICE);
if(mwifip2pmanager!=null){
mChannel =mwifip2pmanager.initialize(getActivity(),getActivity().getMainLooper(),null);
}
mwifip2pmanager.setDeviceName(mChannel,"自定义的名称",new WifiP2pManager.ActionListener(){
public void onSuccess(){
}
public void onFailure(int reason){
}
})
开关miracast
private static final String ENABLE_LISTEN = "net.wfd.enable";
private static final String LISTEN_ON = "mcast_listen";
private void setMcastListenEnabled(boolean enabled) {
if(enabled){
Toast.makeText(this,getResources().getString(R.string.tipcheck),Toast.LENGTH_SHORT).show();
//设置设备可以使用WiFi功能
// SystemProperties.set(ENABLE_LISTEN,"1");
//设备名称更改frameworks/opt/net/wifi/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java 设置默认miracast名称
ReflectUtil.setProperty(ENABLE_LISTEN, "1");
Settings.Global.putInt(getContentResolver(), LISTEN_ON, 1);
}else{
Toast.makeText(this,getResources().getString(R.string.tipcheckclose),Toast.LENGTH_SHORT).show();
ReflectUtil.setProperty(ENABLE_LISTEN, "0");
Settings.Global.putInt(getContentResolver(), LISTEN_ON, 0);
}
}
public final class ReflectUtil {
public static String getProperty(String key, String defaultValue) {
String value = defaultValue;
try {
Class<?> c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("get", String.class, String.class);
value = (String)(get.invoke(c, key, defaultValue));
} catch (Exception e) {
e.printStackTrace();
}finally {
return value;
}
}
public static void setProperty(String key, String value) {
try {
Class<?> c = Class.forName("android.os.SystemProperties");
Method set = c.getMethod("set", String.class, String.class);
set.invoke(c, key, value);
} catch (Exception e) {
e.printStackTrace();
}
}
}