1

앱이 자동으로 앱을 사용하도록 설정하면 네이티브로 반응하는 앱 권한에 대한 시스템 알리미를 얻는 방법?앱이 자동으로 활성화 할 때 네이티브로 반응하는 앱 권한에 대한 시스템 알리미를 얻는 방법

import { PermissionsAndroid } from 'react-native'; 
import Config from '../models/Config'; 

// Permission param must be provided from Android Docs. Ex: READ_CONTACTS 
export const requestPermission=async(permission='READ_CONTACTS')=> { 
    try { 
    const granted = await PermissionsAndroid.request(
     PermissionsAndroid.PERMISSIONS[permission], 
    ) 
    if(granted=='never_ask_again'){ 
     Config.setPermission(false); 
    } 
    return granted; 
    }catch (err) { 
    console.log(err); 
    //alert plz give the suitable permission 
    } 
} 

앱을 제작할 때 앱 사용 권한에 대한 시스템 경고가 표시 될 것으로 예상했습니다. 하지만 앱 권한 설정을 살펴볼 때 앱 시스템 경고가 나타나지 않습니다. 이미 활성화되어 있습니다. 감사.

+1

문제를 설명해 주시겠습니까? 그것 없이는 사람들이 당신을 도울 수있는 방법을 말하기 어렵습니다. –

+0

앱을 만들 때 앱의 권한에 대한 시스템 경고가 표시 될 것으로 예상했습니다. 하지만 앱 권한 설정을 살펴볼 때 앱 시스템 경고가 나타나지 않습니다. 이미 활성화되어 있습니다. 감사합니다. –

+0

질문을 업데이트하십시오. 코멘트에 추가 할 필요가 없습니다. –

답변

0

당신이 통지에게 코드의 처음 몇 줄을 얼마나 이것은 우리가 내가 그 코드를 포함하지 않습니다 우리는 당신이 당신의 안드로이드 매니페스트 파일에 설정된 권한을 처리 시작 후 SD 카드가 있는지 확인한다

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { 
      //.... write file into storage ... 
      System.out.println("SDK > BuildVersion TRUE"); 
     } else { 
      requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 666); // Comment 26 
      System.out.println("go to requestPermissions"); 
     } 
    } 
    onLoad(); 
} 

@Override 
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 

    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    switch (requestCode) { 

     case 666: // Allowed was selected so Permission granted 
      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

       Snackbar s = Snackbar.make(findViewById(android.R.id.content),"Permission Granted",Snackbar.LENGTH_LONG); 
       View snackbarView = s.getView(); 
       TextView textView = (TextView) snackbarView.findViewById(android.support.design.R.id.snackbar_text); 
       textView.setTextColor(Color.RED); 
       textView.setTextSize(18); 
       textView.setMaxLines(6); 
       s.show(); 

       // do your work here 

      } else if (Build.VERSION.SDK_INT >= 23 && !shouldShowRequestPermissionRationale(permissions[0])) { 
       // User selected the Never Ask Again Option Change settings in app settings manually 
       AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle); 
       alertDialogBuilder.setTitle("Change Permissions in Settings"); 
       alertDialogBuilder 
         .setMessage("Click SETTINGS to Manually Set\n\n"+"Permissions to use Database Storage") 
         .setCancelable(false) 
         .setPositiveButton("SETTINGS", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); 
           Uri uri = Uri.fromParts("package", getPackageName(), null); 
           intent.setData(uri); 
           startActivityForResult(intent, 1000);  // Comment 3. 
          } 
         }); 

       AlertDialog alertDialog = alertDialogBuilder.create(); 
       alertDialog.show(); 

      } else { 
        // User selected Deny Dialog to EXIT App ==> OR <== RETRY to have a second chance to Allow Permissions 
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) { 

        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle); 
        alertDialogBuilder.setTitle("Second Chance"); 
        alertDialogBuilder 
          .setMessage("Click RETRY to Set Permissions to Allow\n\n"+"Click EXIT to the Close App") 
          .setCancelable(false) 
          .setPositiveButton("RETRY", new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 
            //ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, Integer.parseInt(WRITE_EXTERNAL_STORAGE)); 
            Intent i = new Intent(MainActivity.this,MainActivity.class); 
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
            startActivity(i); 
            } 
          }) 
          .setNegativeButton("EXIT", new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 
            finish(); 
            dialog.cancel(); 
           } 
          }); 
        AlertDialog alertDialog = alertDialogBuilder.create(); 
        alertDialog.show(); 
       } 
      } 
      break; 
    }};