Android 앱에 대한 모든 권한을 할당하는 가장 쉽고/가장 빠른 방법은 무엇입니까?android 앱에 대한 모든 권한 설정
이유는 다음과 같습니다. Google은 전경 기기에서 실행되는 유일한 앱인 Android 플러그인 PC 용 독점 앱을 개발 중입니다. 장치에서 중단없는 업데이트를 계획하고 있으므로 처음 설치하는 동안 장치에 대한 모든 사용 권한을 할당하려고합니다.
Android 앱에 대한 모든 권한을 할당하는 가장 쉽고/가장 빠른 방법은 무엇입니까?android 앱에 대한 모든 권한 설정
이유는 다음과 같습니다. Google은 전경 기기에서 실행되는 유일한 앱인 Android 플러그인 PC 용 독점 앱을 개발 중입니다. 장치에서 중단없는 업데이트를 계획하고 있으므로 처음 설치하는 동안 장치에 대한 모든 사용 권한을 할당하려고합니다.
매니페스트 파일의 모든 권한을 수동으로 부여하는 것이 좋습니다. link에는 Android 앱에 필요한 모든 권한이 있습니다.
최근 마쉬멜로 (Marshmallow) 버전에서 런타임에 요청 권한을 제공 한 안드로이드가 있습니다. 그런 다음
private void checkPermissionsAtOnce(){
List<String> permissionsNeeded = new ArrayList<>();
final List<String> permissionsList = new ArrayList<>();
if (!addPermission(permissionsList, Manifest.permission.ACCESS_FINE_LOCATION))
permissionsNeeded.add(getString(R.string.gps));
if(!addPermission(permissionsList, Manifest.permission.SEND_SMS))
permissionsNeeded.add(getString(R.string.send_sms));
if (!addPermission(permissionsList, Manifest.permission.WRITE_EXTERNAL_STORAGE))
permissionsNeeded.add(getString(R.string.write_external_storage));
if(!addPermission(permissionsList, Manifest.permission.READ_PHONE_STATE))
permissionsNeeded.add(getString(R.string.read_phone_state));
if(!addPermission(permissionsList, Manifest.permission.CAMERA))
permissionsNeeded.add(getString(R.string.use_camera));
if (permissionsList.size() > 0) {
if (permissionsNeeded.size() > 0) {
String message = getString(R.string.grad_access_to) + permissionsNeeded.get(0);
for (int i = 1; i < permissionsNeeded.size(); i++)
message = message + ", " + permissionsNeeded.get(i);
showMessageOKCancel(message,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ActivityCompat.requestPermissions(MainActivity.this,permissionsList.toArray(new String[permissionsList.size()]),
REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
}
});
return;
}
ActivityCompat.requestPermissions(MainActivity.this, permissionsList.toArray(new String[permissionsList.size()]),
REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
return;
}
}
private void showMessageOKCancel(String message, DialogInterface.OnClickListener listener){
new AlertDialog.Builder(MainActivity.this)
.setMessage(message)
.setPositiveButton(R.string.ok, listener)
.setNegativeButton(R.string.cancel, null)
.create()
.show();
}
private boolean addPermission(List<String> permissionsList, String permission) {
if (ContextCompat.checkSelfPermission(MainActivity.this,permission) != PackageManager.PERMISSION_GRANTED) {
permissionsList.add(permission);
if (!ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, permission))
return false;
}
return true;
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS:
{
Map<String, Integer> perms = new HashMap<>();
perms.put(Manifest.permission.ACCESS_FINE_LOCATION, PackageManager.PERMISSION_GRANTED);
perms.put(Manifest.permission.WRITE_EXTERNAL_STORAGE, PackageManager.PERMISSION_GRANTED);
perms.put(Manifest.permission.SEND_SMS, PackageManager.PERMISSION_GRANTED);
perms.put(Manifest.permission.READ_PHONE_STATE, PackageManager.PERMISSION_GRANTED);
for (int i = 0; i < permissions.length; i++)
perms.put(permissions[i], grantResults[i]);
if(perms.get(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED){
permissionPhoneStateGranted = true;
}
/* if (perms.get(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
&& perms.get(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
&& perms.get(Manifest.permission.SEND_SMS) == PackageManager.PERMISSION_GRANTED
&& perms.get(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED){
}*/
}
break;
case REQUEST_CODE_ASK_PERMISSIONS_FOR_PHONE_STATE:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission Granted
permissionPhoneStateGranted = true;
} else {
// Permission Denied
permissionPhoneStateGranted = false;
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
당신이 취할 수있는
@Override
protected void onStart() {
super.onStart();
checkPermissionsAtOnce();
}
: 앱이 처음으로 시작 그래서 빨리 당신은 당신이 할 수있는 활동에 app.So에 필요한 사용자의 권한을 요청할 수 있습니다 이 샘플을 참조로 사용하고 응용 프로그램에 구현하십시오. 도움이 되었으면 좋겠다 ..
공급 업체이므로이 모든 것을 요청하거나 다른 모든 사용 권한을 부여하는 새 권한을 부여하십시오. – Shark
[안드로이드 : 모든 사용 권한을 설정하는 방법?] (http://stackoverflow.com/questions/7633639/android-how-to-set-all-uses-permission) –
@Shark - 가능한가요? 다른 모든 권한을 부여하는 새로운 권한을 어떻게 만들 수 있습니까? – jay