Android 6.0或更高版本中显示了运行时权限对话框,因此API级别23中添加的Activity.requestPermissions(...)
是有意义的。
但是为什么还有另一个(ActivityCompat.requestPermissions(...)
)用于Android 6.0以下版本?这是否在较低版本中显示运行时权限请求对话框?
What is the difference between
Activity.requestPermissions(permissions, requestCode)
and
ActivityCompat.requestPermissions(activity, permissions, requestCode)
Which one should I use?
ActivityCompat.requestPermissions()
并且设备的版本是6.0或更高,那么运行时权限对话框会弹出吗? - Roshana PitigalaActivityCompat.requestPermissions()
只是检查Build.VERSION.SDK_INT
,如果设备运行Android 6.0+,则调用Activity#requestPermissions()
,否则具有回退行为。 - CommonsWareActivityCompat.requestPermissions()
只是一种懒惰的方式;来摆脱另一个检查if(Build.VERSION.SDK_INT >= 23)
。 - Roshana PitigalaSDK_INT
检查,并记住要检查的版本号。 - CommonsWareActivityCompat.requestPermissions()
用于ActivityCompat
类型的活动中,而Activity.requestPermissions(permissions, requestCode)
用于Activity
类型的活动中。我的回答有更多相关信息。 - ItIsEntropyActivityCompat
不需要AppCompatActivity
。 - CommonsWare