目前,我正在将我的应用程序迁移到目标API 23。
我花了一段时间才弄清楚为什么accountManager.getAccountsByType("com.google")
不再起作用。这是由于新的棉花糖权限模型 - http://developer.android.com/intl/es/training/permissions/requesting.html
我使用的是Android Studio 1.5.1
根据http://tools.android.com/tips/lint-checks,基于MissingPermission,我期望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。 我可以确认通过MissingPermission功能存在。
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 但是自从Android Studio 1.4以后就已经修复了。