private Drive buildDrive() {
Drive service = new Drive.Builder(CredentialManager.getInstance().getCredential(), context).build();
return service;
} private About getAbout() {
About response = null;
try {
Drive drive = buildDrive();
Drive.About about = drive.about();
response = about.get().setFields("*").execute();
String res = response.toString();
} catch (Exception e) {
Log.e(TAG, "getInfo error: " + e.toString());
}
return response;
}
获取用户信息接口是联网耗时接口,需要放在子线程中调用。
/** * 判断是否要提示用户更新协议 * * @param about 返回的About响应 */ private void checkUpdateProtocol(About about) { if (about == null) { return; } Log.d(TAG, "checkUpdate: " + about.toString()); Object updateValue = about.get("needUpdate"); boolean isNeedUpdate = false; if (updateValue instanceof Boolean) { isNeedUpdate = (Boolean) updateValue; } if (!isNeedUpdate) { return; } // 如果需要更新,通过url启动授权页面 Object urlValue = about.get("updateUrl"); String url = ""; if (urlValue instanceof String) { url = (String) urlValue; } if (TextUtils.isEmpty(url)) { return; } Uri uri = Uri.parse(url); if (!"https".equals(uri.getScheme())) { return; } Intent intent = new Intent(Intent.ACTION_VIEW, uri); try { startActivity(intent); } catch (ActivityNotFoundException e) { Logger.e(TAG, "Activity not found"); } }
needUpdate字段为可选字段,Drive.About.Get接口可能并不返回该字段。