66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

先说下环境,我这里工作需要,主要看的是android L的源码,顺带compare了一下aosp N的代码。

首先我们能看到的settings中蓝牙界面的代码是在BluetoothSettings.java 中。

//这个类里面有一个叫mInitiateDiscoverable的变量,这个变量保存了本机蓝牙对于其他设备的可见性。

代码在Activity  onPause的时候调用了:mLocalAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE);​

//aosp8.1的代码也是在onPause的时候处理了 不过对这行代码进行了封装

这行代码执行完之后 本机蓝牙会隐藏对非已连接蓝牙的可见性。

也就是说没连接过的话,退出了蓝牙界面就搜不到本机了。

而setScanMode是BluetothAdapter.java身上的一个有Hide注解的方法,上层只能通过反射调用。

话不多说 上代码:

private void modifyBluetoothVisibility(boolean isvisiable) {

BluetoothAdapter adapter=BluetoothAdapter.getDefaultAdapter();

try {

Method setScanMode = BluetoothAdapter.class.getMethod("setScanMode", int.class);

setScanMode.setAccessible(true);

setScanMode.invoke(adapter, isvisiable ? BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE : BluetoothAdapter.SCAN_MODE_CONNECTABLE);

} catch (Exception e) {

e.printStackTrace();

}

}

通过上面方法的调用即可改变本机蓝牙的可见性。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐