You can use reflection to achieve this. Here is my code for implementing this
private long getLasySyncTime() { long result = 0; try { Method getSyncStatus = ContentResolver.class.getMethod( "getSyncStatus", Account.class, String.class); if (mAccount != null && mSyncAdapter != null) { Object status = getSyncStatus.invoke(null, mAccount, mSyncAdapter.authority); Class<?> statusClass = Class .forName("android.content.SyncStatusInfo"); boolean isStatusObject = statusClass.isInstance(status); if (isStatusObject) { Field successTime = statusClass.getField("lastSuccessTime"); result = successTime.getLong(status); TLog.d(WeixinSetting.class, "get last sync time %d", result); } } } catch (NoSuchMethodException e) { } catch (IllegalAccessException e) { } catch (InvocationTargetException e) { TLog.d(WeixinSetting.class, e.getMessage() + e.getCause().getMessage()); } catch (IllegalArgumentException e) { } catch (ClassNotFoundException e) { } catch (NoSuchFieldException e) { } catch (NullPointerException e) { } return result; }
source share