<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
나는 안드로이드 6.0 버전
public static final int REQUEST_ID_MULTIPLE_PERMISSIONS = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(checkAndRequestPermissions()) {
Log.d ("TAG", "Permissions are granted");
}
}
private boolean checkAndRequestPermissions() {
if (Build.VERSION.SDK_INT >= 23) {
int permissionSTORAGE = ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
int permissionRECORDAUDIO = ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO);
List<String> listPermissionsNeeded = new ArrayList<>();
if (permissionSTORAGE != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (permissionRECORDAUDIO != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(Manifest.permission.RECORD_AUDIO);
}
if (!listPermissionsNeeded.isEmpty()) {
ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), REQUEST_ID_MULTIPLE_PERMISSIONS);
return false;
}
return true;
}
else
return true;
}}
I에 대한 권한을 추가하는 코드 아래 사용 위의 코드에는 두 가지 문제가 있습니다.
- 에뮬레이터 (Android M, SDK 24)에서 권한을 확인할 수 있습니까?
- 구현이 정확합니까? 실제 장치가 없으므로 위의 코드를 확인할 수 없습니다. 당신이 언급 한 것처럼 단지
ActivityCompat.requestPermissions(...)
전화의 모든 4 권한을 포함하고 함께 안드로이드 자동으로 페이지를
확인 된 작업은 http://stackoverflow.com/questions/38141523/directory-creation-not-working-in-marshmallow-android/38141778#38141778 –
에서 확인하십시오. https : // inthecheesefactory. com/blog/things-you-to-know-about-android-m-permission-developer-edition/ko - 에뮬레이터에 대해서는 모르겠지만 실제 장치에서 테스트했습니다. – Tasos