目前,我正在将我的应用程序迁移到目标 API 23。
我花了一段时间才弄清楚原因accountManager.getAccountsByType("com.google")
不再工作了。这是由于新的 Marshmallow 权限模型 -http://developer.android.com/intl/es/training/permissions/requesting.html http://developer.android.com/intl/es/training/permissions/requesting.html
我使用的是 Android Studio 1.5.1
根据http://tools.android.com/tips/lint-checks http://tools.android.com/tips/lint-checks,我希望 lint 能够针对以下代码发出警告,基于缺少权限
public static String getEmail() {
Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+
AccountManager accountManager = AccountManager.get(MyApplication.instance());
Account[] accounts = accountManager.getAccountsByType("com.google");
for (Account account : accounts) {
if (emailPattern.matcher(account.name).matches()) {
String possibleEmail = account.name;
return possibleEmail;
}
}
}
我检查了系统中安装的 lint。我可以确认缺少权限功能是通过
c:\adt-bundle-windows-x86_64-20140624\sdk\tools\lint.bat --show
但是,我在 Android Studio 中没有收到任何警告。我检查了 Android Studio 中的 lint 设置。
看起来
我在那里没有看到任何“缺少权限”选项。
我的 Android Studio 设置有问题吗?
我可以看到 EverNote 团队曾经提交过一份关于缺少权限的 lint 检查的错误报告 -https://code.google.com/p/android/issues/detail?id=182165 https://code.google.com/p/android/issues/detail?id=182165但从 Android Studio 1.4 开始就修复了