android4.2 camera icon
来源:互联网 发布:php获取服务器ip 编辑:程序博客网 时间:2024/05/01 06:52
Android4.2 默认没有camera icon,解决办法:
由一下log 推出:
I/DisableCameraReceiver( 2989): noback camera
I/DisableCameraReceiver( 2989):disable all camera activities
Packages/apps/Camera/src/com/android/camera/DisableCameraReceiver.java
public class DisableCameraReceiverextends BroadcastReceiver {
private static final String TAG = "DisableCameraReceiver";
private static final boolean CHECK_BACK_CAMERA_ONLY = true;
private static final String ACTIVITIES[] = {
"com.android.camera.CameraLauncher",
};
@Override
public void onReceive(Context context, Intent intent) {
// Disable camera-related activities if there is no camera.
boolean needCameraActivity =CHECK_BACK_CAMERA_ONLY ? hasBackCamera() : hasCamera();
////
Log.i(TAG,"++++sam debug needCameraActivity: " + needCameraActivity);
////needCameraActivity = true;
////sam debug 0425
if (!needCameraActivity) {
Log.i(TAG, "disable all cameraactivities");
for (int i = 0; i <ACTIVITIES.length; i++) {
disableComponent(context,ACTIVITIES[i]);
}
}
// Disable this receiver so it won't run again.
disableComponent(context,"com.android.camera.DisableCameraReceiver");
}
private boolean hasCamera() {
int n =android.hardware.Camera.getNumberOfCameras();
Log.i(TAG, "number of camera: " + n);
return (n > 0);
}
private boolean hasBackCamera() {
int n = android.hardware.Camera.getNumberOfCameras();
CameraInfo info = new CameraInfo();
for (int i = 0; i < n; i++) {
android.hardware.Camera.getCameraInfo(i,info);
if (info.facing ==CameraInfo.CAMERA_FACING_BACK) {
Log.i(TAG, "back camera found:" + i);
return true;
}
}
Log.i(TAG, "no back camera");
return false;
}
private void disableComponent(Context context, String klass) {
ComponentName name = new ComponentName(context, klass);
PackageManager pm = context.getPackageManager();
Log.d(TAG, "++++sam debug 111111111111111name :" + name.getPackageName());
Log.d(TAG, "++++sam debug 111111111111111name1 :" + PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
Log.d(TAG, "++++sam debug 111111111111111name2 :" + PackageManager.DONT_KILL_APP);
// We need the DONT_KILL_APP flag, otherwise we will be killed
// immediately because we are in the same app.
pm.setComponentEnabledSetting(name,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
}
}
2:frameworks/av/services/camera/libcameraservice/CameraService.cpp
void CameraService::onFirstRef()
{
BnCameraService::onFirstRef();
if (hw_get_module(CAMERA_HARDWARE_MODULE_ID,
(const hw_module_t**)&mModule) < 0) {
ALOGE("Could not load camera HAL module");
mNumberOfCameras = 0;
}
else {
mNumberOfCameras= mModule->get_number_of_cameras();
if (mNumberOfCameras > MAX_CAMERAS){
ALOGE("Number of cameras(%d)> MAX_CAMERAS(%d).",
mNumberOfCameras,MAX_CAMERAS);
mNumberOfCameras = MAX_CAMERAS;
}
for (int i = 0; i < mNumberOfCameras; i++) {
setCameraFree(i);
}
}
}
CameraService::~CameraService() {
for (int i = 0; i < mNumberOfCameras; i++) {
if (mBusy[i]) {
ALOGE("camera %d is still inuse in destructor!", i);
}
}
gCameraService = NULL;
}
int32_tCameraService::getNumberOfCameras() {
return mNumberOfCameras;
}
3:hardware/imx/mx6/libcamera2/CameraModule.cpp
camera_module_t HAL_MODULE_INFO_SYM ={
common: {
tag: HARDWARE_MODULE_TAG,
module_api_version: CAMERA_MODULE_API_VERSION_2_0,
hal_api_version: HARDWARE_HAL_API_VERSION,
id: CAMERA_HARDWARE_MODULE_ID,
name: "Freescale CameraHal Module",
author: "Freescale",
methods: &camera_module_methods,
dso: NULL, /* removecompilation warnings */
reserved: { 0 }, /* remove compilation warnings */
},
get_number_of_cameras: camera_get_number_of_cameras,
get_camera_info: camera_get_camera_info,
};
int camera_get_number_of_cameras()
{
int back_orient = 0, front_orient= 0;
if (gCameraNum == 0) {
char name_back[CAMERA_SENSOR_LENGTH];
char name_front[CAMERA_SENSOR_LENGTH];
GetCameraPropery(name_back,
name_front,
&back_orient,
&front_orient);
if (name_back[0] != DEFAULT_ERROR_NAME) {
char *pCameraName =strtok(name_back, ",");
while (pCameraName != NULL) {
ALOGI("Checking the camera%s", pCameraName);
strncpy(sCameraInfo[gCameraNum].name,
pCameraName,
CAMERA_SENSOR_LENGTH);
sCameraInfo[gCameraNum].facing = CAMERA_FACING_BACK;
sCameraInfo[gCameraNum].orientation= back_orient;
memset(sCameraInfo[gCameraNum].devPath,0, CAMAERA_FILENAME_LENGTH);
if(GetDevPath(sCameraInfo[gCameraNum].name,
sCameraInfo[gCameraNum].devPath,
CAMAERA_FILENAME_LENGTH)== -1){
pCameraName = strtok(NULL,",");
continue;
}
ALOGI("Camera ID %d: name%s, Facing %d, orientation %d, dev path %s",
gCameraNum,
sCameraInfo[gCameraNum].name,
sCameraInfo[gCameraNum].facing,
sCameraInfo[gCameraNum].orientation,
sCameraInfo[gCameraNum].devPath);
gCameraNum++;
break;
}
}
if (name_front[0] != DEFAULT_ERROR_NAME) {
char *pCameraName =strtok(name_front, ",");
while (pCameraName != NULL) {
ALOGI("Checking the camera%s", pCameraName);
strncpy(sCameraInfo[gCameraNum].name,
pCameraName,
CAMERA_SENSOR_LENGTH);
sCameraInfo[gCameraNum].facing = CAMERA_FACING_FRONT;
sCameraInfo[gCameraNum].orientation= front_orient;
memset(sCameraInfo[gCameraNum].devPath,0, CAMAERA_FILENAME_LENGTH);
if(GetDevPath(sCameraInfo[gCameraNum].name,
sCameraInfo[gCameraNum].devPath,
CAMAERA_FILENAME_LENGTH)== -1) {
pCameraName = strtok(NULL, ",");
continue;
}
ALOGI("Camera ID %d: name%s, Facing %d, orientation %d, dev path %s",
gCameraNum,
sCameraInfo[gCameraNum].name,
sCameraInfo[gCameraNum].facing,
sCameraInfo[gCameraNum].orientation,
sCameraInfo[gCameraNum].devPath);
gCameraNum++;
break;
}
}
}
return gCameraNum;
}
- android4.2 camera icon
- Android4.2 Camera子系统
- Android4.2 Camera子系统
- Android4.2 Camera子系统
- Android4.2 Camera V2.0 框架图
- android4.0 statusbar加载icon
- android4.0 statusbar加载icon
- android4.4 hide 电池ICON
- Android4.2原生Camera、Gallery导入Eclipse 补充说明
- Android4.2之Camera系统HAL调用流程
- Android4.2 Camera子系统初探,数据流程简述
- Android4.2之Camera系统HAL调用流程
- Android4.2之Camera系统HAL调用流程
- Android之Camera拍照插值算法 &&Android4.2之Camera系统HAL调用流程
- android4.0 camera hal 移植
- android4.0 camera hal 移植
- android4.0 camera hal 移植
- Android4.4 Camera 数据流分析
- java获取优酷视频真实地址
- 多进程多线程的选择
- Activiti快速入门项目-kft-activiti-demo
- JS分页控件
- C++笔记三:赋值操作符
- android4.2 camera icon
- uva 11461 Square Numbers
- 集体智慧常用的算法,以及这些算法的含义
- 运行不了blueprint
- 卡尔曼滤波学习
- 分类算法总结
- 做更好的自己,人生最不值得你去做的30件事
- CENTOS 设置文件夹打开方式:在同一窗口打开文件夹
- 霍夫变换