AppCompatActivity 和 Marshmallow 权限

AppCompatActivity and Marshmallow Permissions

我的应用程序使用 "dangerous" 权限,例如 READ_CONTACTS 等。我看到的所有支持这个新模型的例子都使用从 AppCompatActivity 派生的 类。我真的必须将子类 Activity 的活动更改为现在子类 AppCompatActivity 吗?在仍然使用活动的同时是否有其他方法可以做到这一点?当我进行更改时,我的应用程序崩溃了。

Do I really have to change my activities that subclass Activity to now subclass AppCompatActivity?

没有

Is there an alternative way of doing this while still using activities?

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

  • 致电 checkSelfPermission()(在您的 Contextstatic 版本 ContextCompat 上)查看您是否拥有权限

  • 调用 requestPermissions()(在您的 ActivityActivityCompat 上的 static 版本)向用户请求权限

  • 在您的 Activity 上实施 onRequestPermissionsResult() 以获得 requestPermissions() 调用的结果

因此,例如,none 这些示例应用程序使用 AppCompatActivity:

  • 一个 app 就在那里探索运行时权限

  • 完成动手教程以试验添加运行时权限results

  • Two apps 显示请求运行时权限作为设置 Play 服务的融合位置提供程序的一部分

  • 为地图 V2 使用设置运行时权限的app