ν°μ€ν 리 λ·°
μ΄ν리μΌμ΄μ κ°λ° μ€μ ν΄λν° κ°€λ¬λ¦¬μ μ κ·Όνμ¬ νλ‘νμ μ€μ νλ κΈ°λ₯μ΄ μλλ° μ¬μ§ λ°μ΄ν°λ₯Ό κ°μ Έμ€λ €λ©΄ μΌλ¨ μ±μ μ κ·ΌκΆνμ΄ νμ©λμ΄μμ΄μΌ νλ€.
μμλ‘ λ°μ§μλ©΄
μ νλ¦μΌλ‘ μ€νλλ€. μλλ‘μ΄λ μ€νλμ€μμ μμ±λ μ½λλ‘ μ΄ν΄λ³΄μ.
1234 private boolean checkPermissions() {int permissionState = ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE);return permissionState == PackageManager.PERMISSION_GRANTED;}cs
κΆν 보μ μ¬λΆλ₯Ό νμΈνλ λ©μλμΈ ActivityCompat.checkSelfPermission() λ₯Ό νΈμΆ.
μ±μ κΆνμ΄ μλ κ²½μ°μλ
PackageManager.PERMISSION_GRANTED
λ₯Ό λ°ννκ³ , μ±μ΄ μμ μ κ³μ μ§νν μ μμ΅λλ€.μ±μ κΆνμ΄ μλ κ²½μ° μ΄ λ©μλλ
PERMISSION_DENIED
λ₯Ό λ°ννκ³ , μ±μ΄ μ¬μ©μμκ² λͺ μμ μΌλ‘ κΆνμ μμ²ν΄μΌ ν©λλ€.μμ κ²½μ°μλ μ±μ΄ κΆνμ΄ μμ λ trueκ°μ return
1234 private void startPermissionRequest() {ActivityCompat.requestPermissions(this,new String[] {Manifest.permission.READ_EXTERNAL_STORAGE} , REQUEST_PERMISSIONS_REQUEST_CODE);}cs
μ±μ νμν κΆνμ΄ μλ κ²½μ° νμν κΆνμ μμ²νλ λ©μλμΈ ActivityCompat.requestPermissions() λ₯Ό νΈμΆ.
123456789101112131415161718192021 private void requestPermissions() {boolean shouldProviceRationale =ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.READ_EXTERNAL_STORAGE);if( shouldProviceRationale ) {new android.support.v7.app.AlertDialog.Builder(this).setTitle("μλ¦Ό").setMessage("μ μ₯μ κΆνμ΄ νμν©λλ€.").setPositiveButton("νμΈ", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {startPermissionRequest();}}).create().show();} else {startPermissionRequest();}}cs
μ±μ κΆνμ΄ νμν μ΄μ λ₯Ό μ€λͺ νκ³ μ νλ λ©μλ.
μ¬μ©μκ° μ€λͺ
μ΄ νμν μλ μλ μν©μ μ°Ύλλ‘ Androidμμλ μ νΈλ¦¬ν° λ©μλμΈ shouldShowRequestPermissionRationale()
μ μ 곡ν©λλ€. μ΄μ μ μ±μ΄ μ΄ κΆνμ μμ²νκ³ μ¬μ©μκ° μμ²μ κ±°λΆν κ²½μ°, μ΄ λ©μλλ true
λ₯Ό λ°νν©λλ€.
νμΈ λ²νΌ ν΄λ¦ μμ onClick λ©μλλ₯Ό μ€νμμΌμ κ·Έ μμ μλ startPermissionRequest() λ©μλλ₯Ό μ€νμν¨λ€.
READ_EXTERNAL_STORAGE κΆνμ μμ²νλ―λ‘ μμκ°μ μ°½μ λμ°κ² λ¨
νμ©μμλ λ€μμμ μ μ€ννκ² μ§λ§, κ±°λΆλ₯Ό ν μμλ onRequestPermissionsResult λ©μλλ₯Ό μ€ννλλ‘
μ€λ²λΌμ΄λλ₯Ό ν΄μ€μΌνλ€.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case REQUEST_PERMISSIONS_REQUEST_CODE: if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { } else { new android.support.v7.app.AlertDialog.Builder(this) .setTitle("μλ¦Ό") .setMessage("μ μ₯μ κΆνμ΄ νμν©λλ€. νκ²½ μ€μ μμ μ μ₯μ κΆνμ νκ°ν΄μ£ΌμΈμ.") .setPositiveButton("νμΈ", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent intent = new Intent(); intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts("package", BuildConfig.APPLICATION_ID, null); intent.setData(uri); intent.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } }) .create() .show(); } } } | cs |
μ κ·Ό κΆμ© νμ©μ κ±°λΆ νμ λ ν΄λΉ λ©μλλ₯Ό νκ² λλλ° κ·Έλ₯ κ²½κ³ μ°½μ νμμΌλ‘ λλΌ μλ μμ§λ§, μμ κ°μ νμμΌλ‘
ν΄λΉ μ±μ μ€μ μ κ΄ν μ°½μΌλ‘ μ΄λμν¬ μλ μλ€. intentμ μ μ©νλ λ°μ΄ν° λ° μμ±λ€μ ν΄λΉ μ΄ν리μΌμ΄μ μ μ€μ μ°½μ
μ΅μμ μ‘ν°λΉν°λ‘ λνλκ² νλ ꡬ문μ΄λ€.
νμΈ λ²νΌμ λλ₯Ό μμ ν΄λΉ μ±μ κ΄ν μ€μ μ°½μΌλ‘ μ΄λνκ² λλ€.
'Android' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
android edit text underline ν°μΉ μ color λ³νμ£ΌκΈ° (0) | 2018.03.24 |
---|
- Total
- Today
- Yesterday
- android
- typeorm μ°κ²°
- @nestjs/config
- sequelize
- μκ³ λ¦¬μ¦
- docker mysql
- backend-framework
- NestJS
- nestjs config
- Request_Limit_Exceeded
- Spring Async
- nestjs doc
- foreignkey
- Promise bulk
- κΈ°μμ²API
- DeferredResult
- λΉλκΈ° μμ²
- node.js backend
- Spring
- JavaScript
- nestjs configService
- nestjs typeorm
- nestjs project
- nestjs directory
- Promise error
- typeorm
- νλ‘κ·Έλλ¨Έμ€
- nestjs/cli
- node.js
- nestjs module
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |