1.在src/main/AndroidManifest.xml中添加:
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2.在MainActivaty中定义函数getPermissionCamera:
/** * 确认camera权限 * @param activity * @return */ public static boolean getPermissionCamera(Activity activity) { int cameraPermissionCheck = ContextCompat.checkSelfPermission(activity, Manifest.permission.CAMERA); int readPermissionCheck = ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE); int writePermissionCheck = ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); if (cameraPermissionCheck != PackageManager.PERMISSION_GRANTED || readPermissionCheck != PackageManager.PERMISSION_GRANTED || writePermissionCheck != PackageManager.PERMISSION_GRANTED) { String[] permissions = new String[]{Manifest.permission.CAMERA,Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE}; ActivityCompat.requestPermissions( activity, permissions, 0); return false; } else { return true; } }
3.在MainActivity的onCreate函数中调用:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.mybutton); mytext = (TextView) findViewById(R.id.mytext); Mybutton listener = new Mybutton(); button.setOnClickListener(listener); boolean havePermission = getPermissionCamera(this); Log.i(TAG, "getPermissionCamera " + havePermission); display(); }