首先聊聊产品名问题,每个手机平台都会设置一个型号做为项目名称,但是这个项目名称基本都不符合手机厂商自己品牌的产品名,厂商自己就会把它更改掉,在我的手机页面中显示出来,还有就是蓝牙显示默认名称,以及USB选择"传文件"模式在“我的电脑"中显示的名称。
一般厂商都会自定义个system分区的属性值,比如:ro.zuk.product.market等待,来设置产品项目名。
其它模块去读取这个属性即可[String name = SystemProperties.get("ro.zuk.product.market", "UNKNOWN");]
至于这个属性变量名ro.zuk.product.market每个厂商都定义的不同。
虽然项目名称被修改了,但是外部应用此时可以获取到型号的,
String name = Build.MODEL;
该值每一款手机只对应于一个,还是可以做为唯一标识符的。
PC端显示的手机名称也是可以修改的,在MediaProvider的MtpService.java中:
final MtpServer server =
new MtpServer(database, fd, mPtpMode,
new OnServerTerminated(), Build.MANUFACTURER,
Build.MODEL, "1.0");
只需要把其中的参数Build.MODEL替换成获取的属性值即可。