Android 5.0上的ContentResolver.isSyncActive抛出IllegalArgumentException

时间:2014-12-08 10:11:01

标签: android sync illegalargumentexception

我一直在使用isSyncActive()检查同步是否有效。在Android版本上运行良好的一切< 5.0但在新的Android 5.0版本上它抛出异常java.lang.IllegalArgumentException: account must not be null。有没有解决方案,为什么这只发生在上面提到的Android版本。

1 个答案:

答案 0 :(得分:0)

如果您感兴趣,内容解析器的代码是开源的:https://github.com/android/platform_frameworks_base/blob/master/core/java/android/content/ContentResolver.java。我也遇到与5.0更新相关的其他问题,这就是我在这篇文章中遇到的问题。看起来您需要将有效的帐户对象传递给方法才能使其工作。

public static boolean isSyncActive(Account account, String authority) {
    if (account == null) {
        throw new IllegalArgumentException("account must not be null");
    }
    if (authority == null) {
        throw new IllegalArgumentException("authority must not be null");
    }

    try {
        return getContentService().isSyncActive(account, authority, null);
    } catch (RemoteException e) {
        throw new RuntimeException("the ContentService should always be reachable", e);
    }
}