나는 android를 처음 사용했습니다. 사용자 지정 클래스에서 사용 권한을 부여하려고합니다. 나는이맞춤 클래스를 사용하여 사용 권한 부여
public interface RequestPermissionsResultInterface
{
void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults);
}
public interface PermissionManagerInterface
{
void onPermissionGranted(String message, int requestCode);
void onPermissionDenied(String message, int requestCode);
}
public class PermissionManager
{
private Activity mActivity;
private static volatile PermissionManagerInterface mManagerInterface;
public static PermissionManager getInstance(Context context)
{
if (mPermissionManager == null)
{
synchronized (PermissionManager.class)
{
if (mPermissionManager == null)
{
mPermissionManager = new PermissionManager(context);
}
}
}
return mPermissionManager;
}
private boolean isReadStorageAllowed()
{
int result = ContextCompat.checkSelfPermission(this.mActivity, Manifest.permission.READ_EXTERNAL_STORAGE);
return ((result == PackageManager.PERMISSION_GRANTED));
}
public RequestPermissionsResultInterface askPermission(
Activity mActivity,
String permissionName,
final PermissionManagerInterface managerInterface,
final int requestCode)
{
boolean isReadExternalStorageAllowed = isReadStorageAllowed();
if(isReadExternalStorageAllowed == false)
{
if (ActivityCompat.shouldShowRequestPermissionRationale(mActivity, permissionName))
{
final AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
builder.setMessage("Please allow all permissions in App Settings for additional functionality.");
builder.setCancelable(false);
builder.setPositiveButton("Allow", new DialogInterface.OnClickListener() {
public void onClick(@SuppressWarnings("unused") final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
managerInterface.onPermissionGranted("Permission Granted", requestCode);
}
});
builder.setNegativeButton("Deny", new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
managerInterface.onPermissionDenied("Permission Denied", requestCode);
}
});
final AlertDialog alert = builder.create();
alert.show();
}
}
else managerInterface.onPermissionGranted("Permission Already Granted", requestCode);
}
}
같은 두 개의 인터페이스와 싱글 톤 클래스를 가지고 그리고 여기에 내가 다시
PermissionManager permManager = PermissionManager.getInstance();
permManager.askPermission(
MainActivity.this,
Manifest.permission.READ_EXTERNAL_STORAGE,
mPermissionManagerInterface, // assume this exists
EXTERNAL_STORAGE_PERMISSION_CODE);
MainActivity
에서이 클래스를 사용하는 방법입니다 ....이 지속되지 않습니다. 권한을 부여한 다음 앱을 중지했다가 다시 시작하면 .... 권한을 다시 요청하는 중입니다. 무엇이 잘못 될 수 있습니까 ?? 감사합니다
Android를 처음 사용하는 경우 문서화 된 방식으로 시도해보고 나면 먼저 자신의 스핀을 넣어보십시오. – Kuffs