假设你有这样的方法: public boolean saveFile (Url url, String content) { // save the file, this can be done a lot of different ways, but // basically the point is… return save_was_successful; } 在整个应用程序中,如果要将文件保存到外部存储,则可以执行以下操作: if (saveFile(external_storage_url, "this is a test")) { // yay, success! } else { // notify the user something was wrong or handle the […]
根据Google的说法,当涉及到M Developer Preview运行时权限时: 如果你以前从来没有要求过一定的许可,那就问问吧 如果您之前询问过,并且用户说“不”,然后用户尝试做一些需要拒绝的权限,您应该提示用户解释为什么您需要权限,然后再继续请求权限 如果你之前问了几次,并且用户说“不,并停止询问”(通过运行时权限对话框中的checkbox),你应该停止打扰(例如,禁用需要权限的用户界面) 但是,我们只有一个方法, shouldShowRequestPermissionRationale() ,返回一个boolean ,我们有三个状态。 我们需要一种方法来区别从问的状态和停止问的状态,因为我们从shouldShowRequestPermissionRationale()获取false 。 对于第一次运行应用程序时要求的权限,这不是一个大问题。 有很多的食谱来确定这可能是你的应用程序的第一次运行(例如, SharedPreferences boolean值),所以你假设如果这是你的应用程序的第一次运行,你是在从未问过的状态。 然而,运行时权限的一部分是你可能不会要求所有这些。 权限绑定到附加function,你可能只会问,当用户点击需要权限的东西。 在这里,应用程序可能已经运行了很多次,几个月之后,我们突然之间需要再次申请许可。 在这些情况下,我们是否应该跟踪自己是否要求获得许可? 或者在Android M API中有什么东西可以告诉我们我们之前是否问过?
我有一个关于新的Android棉花糖版本的问题: 通过意图或类似的方式显示特定应用程序的权限屏幕是否可行? 可以使用下面的代码显示应用程序设置 – 是否有直接打开权限屏幕的模拟解决scheme? startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", getPackageName(), null))); 我已经做了一些这方面的研究,但是我找不到一个合适的解决scheme – 我会感谢每一个帮助!