В настоящее время я пытаюсь активировать камеру телефона, и перед активацией я проверяю разрешения камеры, чтобы узнать, разрешено ли это. Однако по какой-то причине при проверке разрешений я получу сообщение об ошибке, как показано ниже:
Attempt to invoke virtual method 'int android.content.Context.checkPermission(java.lang.String, int,
int)' on a null object reference
Я попытался добавить в манифест
<uses-permission android:name="android.permission.CAMERA"/>
, но все равно это не так Это похоже на работу.
Я также увеличил уровень appcompat
до 23.1.1, и он тоже не работает.
Фрагменты моей программы показаны ниже:
public abstract class CameraFragment extends Fragment implements CameraCallbacks {
private CameraPreview mCameraPreview;
public void startCamera(CameraConfig cameraConfig) {
if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) { //check if the camera permission is available
}else{ (mCameraPreview == null) mCameraPreview = addPreView();
mCameraPreview.startCameraInternal(cameraConfig);
}}}
Ниже приведены коды фрагментов для CameraPreview:
class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {
private CameraCallbacks mHiddenCameraActivity;
CameraPreview(@NonNull Context context, CameraCallbacks cameraCallbacks) {
super(context);
mHiddenCameraActivity = cameraCallbacks;
//Set surface holder
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
}
Ниже приведены фрагменты кода для CameraCallback:
interface CameraCallbacks {
void onImageCapture(@NonNull File imageFile);
void onCameraError(@CameraError.CameraErrorCodes int errorCode);
}
Кто-нибудь получил решение этой проблемы ?
Я потратил бесчисленные часы, работая над этим и ища решения в Интернете, и, похоже, он все еще не работает.
Спасибо за помощь.