工模测试,sim卡测试,去掉一个卡测试:
vendor/freeme/packages/apps/FreemeFactoryTest/src/com/freeme/factory/telephony/Sim.java
把里面的关于sim2的都删了就行mTextSim2,关于这个textView
去掉之后还要注意原来判断成功失败的逻辑,原来是testActionCompleted(existSim1 && existSim2);换成testActionCompleted(existSim1);
上面的方法很直接,但没必要
因为
private void updateSimStates() {
if (TestConfig.TEST_EN_GEMINI_SUPPORT) {
源码就有关于一张卡的,走了这个判断的else,所以只需要在src/com/freeme/factory/config/TestConfig.java文件中
把这个TEST_EN_GEMINI_SUPPORT变成false就行
testActionCompleted这个方法是继承父类BaseTest,控制成功按键success是否亮起的,可直接使用
设置-关于手机-点击设备名称更改后会提示蓝牙WiFi等都会更改名称,但是只有在开启蓝牙状态时才能生效:
没办法,底层就是无法在蓝牙关闭的时候对BluetoothAdapter进行更名
只有更换提示就行
overlay/vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values-zh-rCN/strings.xml
overlay/vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values/strings.xml
字符串换掉,弹窗的,再设置个判断,如果蓝牙状态关闭的话更改提示用户是无法更改蓝牙名的
override/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/deviceinfo/aboutphone/DeviceNameWarningDialog.java
在这个方法onCreateDialog里
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
boolean enabled = bluetoothAdapter.isEnabled();
if(!enabled){
下面就是逻辑,如果不在蓝牙状态主要把这个message换掉.setMessage(R.string.about_phone_device_name_warning_withoutBT)
如果是的话,那就走源码本来的字符串。
其中原理如下
src/com/android/settings/deviceinfo/aboutphone/DeviceNameWarningDialog.java 关于手机里的设备名称修改后弹出的确认对话框,将会改掉蓝牙WiFi等连接名字
./src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java 点击之后,执行onSetDeviceNameConfirm(里面参数true false),完了又会执行下面这个
./src/com/android/settings/deviceinfo/DeviceNamePreferenceController.java
先进入updateDeviceName后 进入setDeviceName 里面有
mDeviceName = deviceName;
setSettingsGlobalDeviceName(deviceName);
setBluetoothDeviceName(deviceName);
setTetherSsidName(deviceName);
mPreference.setSummary(getSummary());
这就是原理
最后在
setBluetoothDeviceName 方法做修改,实测是把蓝牙关掉后在修改名称,蓝牙设备再打开就不会更新,如果开着改是正常的,所以把下面这个if判断去掉就行
if (mBluetoothAdapter != null) {
android.util.Log.i("yantao","setBluetoothDeviceName-mBluetoothAdapter != null");
mBluetoothAdapter.setName(getFilteredBluetoothString(deviceName));
这个BluetoothAdapter就是走底层frameworks的了,里面setname方法在没打开蓝牙服务是无法设置名字的