工模测试,sim卡测试,去掉一个卡测试。设置-关于手机-点击设备名称更改后会提示蓝牙WiFi等都会更改名称,但是只有在开启蓝牙状态时才能生效。

工模测试,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方法在没打开蓝牙服务是无法设置名字的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Youth King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值