Merge pull request #15105 from komakai:camera_permissions
commit
79310a0051
10 changed files with 186 additions and 35 deletions
@ -0,0 +1,60 @@ |
|||||||
|
package org.opencv.android; |
||||||
|
|
||||||
|
import android.annotation.TargetApi; |
||||||
|
import android.app.Activity; |
||||||
|
import android.content.Context; |
||||||
|
import android.content.pm.PackageManager; |
||||||
|
import android.os.Build; |
||||||
|
import android.util.AttributeSet; |
||||||
|
import android.view.View; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import static android.Manifest.permission.CAMERA; |
||||||
|
|
||||||
|
public class CameraActivity extends Activity { |
||||||
|
|
||||||
|
private static final int CAMERA_PERMISSION_REQUEST_CODE = 200; |
||||||
|
|
||||||
|
protected List<? extends CameraBridgeViewBase> getCameraViewList() { |
||||||
|
return new ArrayList<CameraBridgeViewBase>(); |
||||||
|
} |
||||||
|
|
||||||
|
protected void onCameraPermissionGranted() { |
||||||
|
List<? extends CameraBridgeViewBase> cameraViews = getCameraViewList(); |
||||||
|
if (cameraViews == null) { |
||||||
|
return; |
||||||
|
} |
||||||
|
for (CameraBridgeViewBase cameraBridgeViewBase: cameraViews) { |
||||||
|
if (cameraBridgeViewBase != null) { |
||||||
|
cameraBridgeViewBase.setCameraPermissionGranted(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected void onStart() { |
||||||
|
super.onStart(); |
||||||
|
boolean havePermission = true; |
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { |
||||||
|
if (checkSelfPermission(CAMERA) != PackageManager.PERMISSION_GRANTED) { |
||||||
|
requestPermissions(new String[]{CAMERA}, CAMERA_PERMISSION_REQUEST_CODE); |
||||||
|
havePermission = false; |
||||||
|
} |
||||||
|
} |
||||||
|
if (havePermission) { |
||||||
|
onCameraPermissionGranted(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
@TargetApi(Build.VERSION_CODES.M) |
||||||
|
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { |
||||||
|
if (requestCode == CAMERA_PERMISSION_REQUEST_CODE && grantResults.length > 0 |
||||||
|
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) { |
||||||
|
onCameraPermissionGranted(); |
||||||
|
} |
||||||
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue