2016-04-05 51 views
0

我的应用使用“危险”权限,如READ_CONTACTS等。我见过的所有支持这个新模型的例子都使用了派生自AppCompatActivity的类。我是否真的必须将活动的子类改为现在的子类AppCompatActivity?在仍然使用活动的同时还有其他方法可以做到这一点吗?当我做出改变我的应用程序崩溃。AppCompatActivity and Marshmallow权限

+1

你能在这里发表您的错误。 ? –

+0

http://stackoverflow.com/questions/33666071/android-marshmallow-request-permission/34722591#34722591我解释简单..... –

+0

我解释简单在下面的链接。 http://stackoverflow.com/questions/33666071/android-marshmallow-request-permission/34722591#34722591 –

回答

3

我是否真的必须将Activity的子类更改为现在的子类AppCompatActivity?

是否有这样做的同时仍使用活动的另一种方式?

也是这样。 AppCompatActivity中没有任何内容与运行时权限有关。无论您是从ActivityAppCompatActivity,或PhilodendronActivity继承,您:

  • 呼叫checkSelfPermission()(您Contextstatic版上ContextCompat)看看,如果你持有的许可

  • 呼叫requestPermissions()(上您的Activitystatic版本ActivityCompat)向用户请求权限

  • 执行onRequestPermissionsResult()Activity得到requestPermissions()调用的结果

因此,举例来说,所有这些示例应用程序的使用AppCompatActivity

  • app只是为了探索运行权限

  • 完成实践教程以添加运行时权限的results

  • Two apps,显示请求运行的权限设置播放业务融合位置提供

  • 的一部分app,设置了运行时的权限地图V2使用

+0

非常感谢,我会尽快看一看。按照用户操作的要求,最好一次或一次请求所有权限?在开始时需要读取联系人,但如果用户没有采取需要的操作,可能永远不需要写入外部存储器? –

+0

@PhilO:通常,您在请求权限之前一直等待用户操作,所以您只需要尽可能少的权限。如果权限在用户操作的上下文中对用户可能没有意义,并且您认为进行某种“欢迎”加载活动并预先请求权限可能会让用户顺利进行操作,这是合理的。 – CommonsWare

+0

非常感谢。 –

相关问题