调用摄像头:- 在配置文件(config.json)中申请相应的权限,如“ohos.permission.CAMERA”。 - 使用 Ability 中的方法来启动相机功能。可以使用媒体查询接口(MediaLibrary)来获取相机设备信息,然后通过相机管理接口(CameraManager)来打开相机进行拍照或录像等操作。例如:import ohos.agp.components.Component; import ohos.app.Context; import ohos.hiviewdfx.HiLog; import ohos.hiviewdfx.HiLogLabel; import ohos.media.camera.device.CameraDevice; import ohos.media.camera.device.CameraInfo; import ohos.media.camera.params.Metadata; import ohos.media.camera.params.SessionCaptureCallback; import ohos.media.camera.params.SessionCaptureRequest; import ohos.media.camera.params.SessionConfiguration; import ohos.media.camera.params.SessionOutput; import ohos.media.camera.service.CameraKit; import ohos.media.camera.service.CameraServiceManager; import ohos.media.image.ImageReceiver; public class CameraExample { private static final HiLogLabel LABEL_LOG = new HiLogLabel(3, 0xD001100, "CameraExample"); private CameraKit cameraKit; private CameraDevice cameraDevice; public void startCamera(Context context, Component component) { try { cameraKit = CameraServiceManager.getCameraKit(); CameraInfo[] cameraInfos = cameraKit.getCameraIds(); if (cameraInfos.length > 0) { cameraDevice = cameraKit.getCamera(cameraInfos[0]); SessionConfiguration sessionConfiguration = new SessionConfiguration(); SessionOutput sessionOutput = new SessionOutput(ImageReceiver.class); sessionConfiguration.addOutput(sessionOutput); cameraDevice.createCaptureSession(sessionConfiguration, new SessionCaptureCallback() { @Override public void onSessionConfigured() { HiLog.info(LABEL_LOG, "Session configured"); } @Override public void onCaptureStarted() { HiLog.info(LABEL_LOG, "Capture started"); } @Override public void onCaptureFinished(Metadata metadata, int imageCount) { HiLog.info(LABEL_LOG, "Capture finished"); } @Override public void onError(int errorCode) { HiLog.error(LABEL_LOG, "Error occurred: " + errorCode); } }); } } catch (Exception e) { HiLog.error(LABEL_LOG, "Error starting camera: " + e.getMessage()); } } }调用 GPS:- 在配置文件中申请“ohos.permission.LOCATION”权限。 - 使用位置管理服务(LocationManager)来获取设备的位置信息。可以设置位置监听器(LocationCallback)来接收位置更新。例如:import ohos.app.Context; import ohos.hiviewdfx.HiLog; import ohos.hiviewdfx.HiLogLabel; import ohos.location.Location; import ohos.location.LocationManager; public class GpsExample { private static final HiLogLabel LABEL_LOG = new HiLogLabel(3, 0xD001100, "GpsExample"); private LocationManager locationManager; public void startGps(Context context) { try { locationManager = LocationManager.getInstance(context); locationManager.addLocationCallback(new LocationCallback() { @Override public void onLocationReport(Location location) { HiLog.info(LABEL_LOG, "Latitude: " + location.getLatitude() + ", Longitude: " + location.getLongitude()); } @Override public void onStatusChanged(int statusCode) { HiLog.info(LABEL_LOG, "Status changed: " + statusCode); } }); locationManager.requestLocationUpdates(LocationRequest.DEFAULT, null); } catch (Exception e) { HiLog.error(LABEL_LOG, "Error starting GPS: " + e.getMessage()); } } }
调用摄像头:
调用 GPS: