Android 运行时权限 Runtime Permissions

  • REORDER_TASKS

  • REQUEST_INSTALL_PACKAGES

  • SET_ALARM

  • SET_TIME_ZONE

  • SET_WALLPAPER

  • SET_WALLPAPER_HINTS

  • TRANSMIT_IR

  • UNINSTALL_SHORTCUT

  • USE_FINGERPRINT

  • VIBRATE

  • WAKE_LOCK

  • WRITE_SYNC_SETTINGS

Dangerous Permissions


shell@zenltevzw:/ $ pm list permissions -d -g

Dangerous Permissions:

group:android.permission-group.LGT_CONTENT

group:com.sec.enterprise.permission-group.mdm

group:com.google.android.gms.permission.CAR_INFORMATION

permission:com.google.android.gms.permission.CAR_VENDOR_EXTENSION

permission:com.google.android.gms.permission.CAR_MILEAGE

permission:com.google.android.gms.permission.CAR_FUEL

group:android.permission-group.CONTACTS

permission:android.permission.WRITE_CONTACTS

permission:android.permission.GET_ACCOUNTS

permission:android.permission.READ_CONTACTS

group:android.permission-group.MESSAGES

permission:com.google.android.providers.talk.permission.WRITE_ONLY

permission:com.google.android.gm.permission.READ_CONTENT_PROVIDER

permission:com.google.android.providers.talk.permission.READ_ONLY

group:android.permission-group.PHONE

permission:android.permission.READ_CALL_LOG

permission:android.permission.READ_PHONE_STATE

permission:android.permission.CALL_PHONE

permission:android.permission.WRITE_CALL_LOG

permission:android.permission.USE_SIP

permission:android.permission.PROCESS_OUTGOING_CALLS

permission:com.android.voicemail.permission.ADD_VOICEMAIL

group:com.sec.permission-group.SECURITY

group:android.permission-group.CALENDAR

permission:android.permission.READ_CALENDAR

permission:android.permission.WRITE_CALENDAR

group:android.permission-group.CAMERA

permission:com.sec.android.app.camera.permission.SHOOTING_MODE

permission:android.permission.CAMERA

group:com.sec.orca.remoteshare.permission-group.RSHARE

group:com.samsung.android.app.memo.permission

group:android.permission-group.SENSORS

permission:android.permission.BODY_SENSORS

group:android.permission-group.LOCATION

permission:android.permission.ACCESS_FINE_LOCATION

permission:com.google.android.gms.permission.CAR_SPEED

permission:android.permission.ACCESS_COARSE_LOCATION

group:android.permission-group.STORAGE

permission:android.permission.READ_EXTERNAL_STORAGE

permission:android.permission.WRITE_EXTERNAL_STORAGE

group:android.permission-group.MICROPHONE

permission:android.permission.RECORD_AUDIO

group:com.samsung.permission-group.SKT

group:android.permission-group.SMS

permission:android.permission.READ_SMS

permission:android.permission.RECEIVE_WAP_PUSH

permission:android.permission.RECEIVE_MMS

permission:android.permission.RECEIVE_SMS

permission:android.permission.SEND_SMS

permission:android.permission.READ_CELL_BROADCASTS

group:com.sec.android.app.sysscope.permission-group.SYSTEM_DIAGNOSIS

ungrouped:

permission:com.google.android.apps.photos.permission.GOOGLE_PHOTOS_PROVIDER

permission:com.sec.smartcard.permission.SMARTCARD_ADAPTER

permission:com.samsung.android.memo.EXTRA_READ

permission:com.samsung.android.memo.EXTRA_WRITE

shell@zenltevzw:/ $

注意:Dangerous Permission的运行时授权是以group为单位的


检查权限


android.content.Context.checkSelfPermission()

返回值:

android.content.pm.PackageManager.PERMISSION_DENIED = -1

android.content.pm.PackageManager.PERMISSION_GRANTED = 0

申请权限


void requestPermissions (String[] permissions,

int requestCode)

当申请多组权限时,会逐一弹窗确认。

requestCode用于回调:

Application specific request code to match with a result reported to onRequestPermissionsResult(int, String[], int[]). Should be >= 0

@Override

public void onRequestPermissionsResult(int requestCode,

String permissions[], int[] grantResults) {

switch (requestCode) {

case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {

// If request is cancelled, the result arrays are empty.

if (grantResults.length > 0

&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {

// permission was granted, yay! Do the

// contacts-related task you need to do.

} else {

// permission denied, boo! Disable the

// functionality that depends on this permission.

}

return;

}

}

}

解释

boolean shouldShowRequestPermissionRationale (String permission)

申请权限的解释,该方法只有在用户在上次拒绝过你的这个权限申请。再次弹出申请权限的对话框,告诉用户该权限是应用必要的,并且不会危害之类的解释。

// Should we show an explanation?

if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值