Tratando de implementar permisos de cámara para android M sin método virtual checkSelfPermission

He intentado implementar permisos de cámara de esta manera:

private void checkCameraPermissions() { if(checkCameraHardware(this)) { if (checkSelfPermission(Manifest.permission_group.camera) != PackageManager.PERMISSION_GRANTED) { Crashlytics.log("Requesting camera permission"); // Should we show an explanation? if (shouldShowRequestPermissionRationale( Manifest.permission_group.camera)) { // Explain to the user why we need to use the camera showRationaleForCameraUse(); } requestPermissions(new String[]{Manifest.permission_group.camera}, Constants.MY_PERMISSIONS_REQUEST_CAMERA_GROUP); // MY_PERMISSIONS_REQUEST_CAMERA_GROUP is an // app-defined int constant } else { startApp(); } }else{ showNoCameraAvailableAlert(); } } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case Constants.MY_PERMISSIONS_REQUEST_CAMERA_GROUP: { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { // permission was granted, yay! // start the app startApp(); } else { // permission denied, boo! // leav the app! showNoCameraAvailableAlert(); } return; } // other 'switch' lines to check for other // permissions this app might request } } 

Y obtuvo el siguiente error:

 java.lang.NoSuchMethodError: No virtual method checkSelfPermission(Ljava/lang/String;)I in class Lim/emu/app/emu/app/view/splash/SplashActivity; or its super classes (declaration of 'im.emu.app.emu.app.view.splash.SplashActivity' appears in /data/app/im.emu.app.emu.test-1/base.apk) at im.emu.app.emu.app.view.splash.SplashActivity.checkCameraPermissions(SplashActivity.java:74) at im.emu.app.emu.app.view.splash.SplashActivity.onCreate(SplashActivity.java:52) at android.app.Activity.performCreate(Activity.java:5977) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2258) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2367) at android.app.ActivityThread.access$800(ActivityThread.java:148) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5274) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704) 08-30 16:34:10.801 17087-17357/im.emu.app.emu.test I/Fabric﹕ Crashlytics report upload complete: 55E30629033A-0001-42BF-296ED8AC703A.cls 

¿Alguna idea de cómo puedo arreglar esto? Ps si más información es necesaria por favor pregunte

Debe ejecutar el código en el dispositivo que ejecuta versiones anteriores. ContextCompat.checkSelfPermission() utilizar ContextCompat.checkSelfPermission() .

Cuidado con

 'shouldShowRequestPermissionRationale( Manifest.permission_group.camera)' 

Tuve un problema con el grupo de permisos donde quería el permiso individual y no el grupo y lanzaría una excepción si usaba el otro.

Debe utilizar ActivityCompat.checkSelfPermission() lugar de la capacidad hacia atrás en dispositivos Pre-Lollipop. Así que this.checkSelfPermission() se puede usar para aplicaciones que declara minSdkVersion 23

Has olvidado dar permiso en AndroidManifest.xml

 <uses-permission android:name="android.permission.CAMERA"/> 
  • BroadcastReceiver permiso para el shell de adb
  • Solicitud de llamadaPermisiones dos veces en llamadas de kernel personalizadas onRequestPermissionsResult antes de la respuesta del usuario
  • Permiso de Marshmallow: Componente Lifecycle
  • Período de tiempo de ejecución de Marshmallow
  • Perder el permiso de Notificación de acceso después de reiniciar
  • FIleObserver y ContentObserver no funcionan en Android Marshmallow
  • Cómo deshabilitar las animaciones en el código al ejecutar pruebas de Espresso
  • ¿Por qué Android PlacePicker no (!) Requiere permiso ACCESS_FINE_LOCATION para trabajar?
  • Android marshmallow solicitud de permiso?
  • Android Fatal Error - No se puede realizar esta acción después de onSaveInstanceState
  • ¿Permisos opcionales para que una aplicación pueda mostrarse en todos los dispositivos y activar funciones opcionales en algunos?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.