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