相机(Camera)图标缺失
有些低内存的手机或终端首次开机初始化检测慢,概率性会导致一个问题:首次开机时未检测到Camera, 当系统首次启动完成后, 会去检测Camera数目, 如果没有检测到Camera, 会disable Camera的应用及入口, 导致camera的图标丢失。但是呢,相机又是好的,,这可如何是好啊。
第一种方法,恢复出厂设置,恢复出厂设置之后图标是会出现的,但是客户可不会接受这种方式啊,用户哪里知道你的相机是好的呢?所以啊就得用第二种方式了。
第二种方式,去除"检测无Camera时禁用camera"这个机制:
在alps/vendor/mediatek/proprietary/packages/apps/Camera/src/com/android/camera/DisableCameraReceiver.java(这个具体使用那个Camera apk就在哪个位置)这个类中有关于禁用Camera的逻辑:
@Override public void onReceive(Context context, Intent intent) { // Disable camera-related activities if there is no camera. boolean needCameraActivity = FeatureSwitcher.isOnlyCheckBackCamera() ? hasBackCamera() : hasCamera(); if (!needCameraActivity) { Log.d(TAG, "disable all camera activities"); for (int i = 0; i < ACTIVITIES.length; i++) { disableComponent(context, ACTIVITIES[i]); } } // Disable this receiver so it wont run again. disableComponent(context, "com.android.camera.DisableCameraReceiver"); }
将其注释掉就可以去掉这个逻辑了。但是去掉这个逻辑后会出现一个问题:即使相机组件出现了问题,也会有camera的图标,但是点击进去不能拍照。相较来说“相机组件出现了问题,也会有camera的图标,但是点击进去不能拍照”是一个正常的bug,和原来去掉camera相比区别不大,都是不能拍照,只是多了一步“会让用户点击无用应用”的操作,影响不大。