在我的应用程序中,我为用户提供了一个选项,可以将其数据(一个db和一些音频文件)备份到应用程序文件夹中的Google Drive帐户。为此,用户必须在以下对话框中“为MyApp选择帐户”:
mGAPIClient = new GoogleApiClient.Builder(mACA)
.enableAutoManage(mACA, this)
.addApi(Drive.API)
.addScope(Drive.SCOPE_APPFOLDER)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
之后,我开始备份过程。
但是,如果用户点击该对话框之外的某个地方,它会消失并且不会建立连接-并且不会再次显示该对话框。
发生这种情况时,我如何提示系统再次向他/她显示该对话框?除此之外,我还尝试将GoogleAppClient实例设置为null并再次构建它,但没有成功。
我使用了官方博客文章中建议的最新GoogleApi
客户端,并且使用了AGP 3.0.1和Gradle 4.2.1。
>
将此类路径添加到项目生成中。渐变依赖项
classpath 'com.google.gms:google-services:3.1.2'
将这些依赖项添加到应用程序构建。格拉德尔
implementation 'com.google.android.gms:play-services-auth:11.6.2'
implementation 'com.google.android.gms:play-services-drive:11.6.2'
在应用程序build.gradle文件的底部添加插件行
apply plugin: 'com.google.gms.google-services'
在我的示例中,我有:
public class MainActivity extends AppCompatActivity {
private static final int RC_SIGN_IN = 9001;
private GoogleSignInClient mSignInClient;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//request access to drive
GoogleSignInOptions options =
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(Drive.SCOPE_FILE)
.build();
mSignInClient = GoogleSignIn.getClient(this, options);
//button to launch the signIn flow
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(view -> signIn());
}
private void signIn() {
// Launches the sign in flow, the result is returned in onActivityResult
Intent intent = mSignInClient.getSignInIntent();
startActivityForResult(intent, RC_SIGN_IN);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
Task<GoogleSignInAccount> task =
GoogleSignIn.getSignedInAccountFromIntent(data);
if (task.isSuccessful()) {
// Sign in succeeded, proceed with account
GoogleSignInAccount acct = task.getResult();
// proceed with your logic
} else {
// Sign in failed, handle failure and update UI
// we should probably show a motivation screen to the user before showing
// the account selection again, but for example purposes we launch the
// sign-in flow immediately
signIn();
}
}
}
}
对我来说,这很有效。如果对你也有效,请告诉我。
问题内容: 我正在开发一个项目,该项目需要解析一些受保护的网页中的数据。为了获得对这些页面的访问权限,我必须克服SAML身份验证形式(Shibboleth)。是否有人能够在Android(Java)中实现此标准?我已经读过这个线程:Android的SAML客户端实现? 但这并不能给我一个很好的解决方案。实际上,我需要 获取某些受保护网页的数据 以便对其进行解析,而不是让用户看到此类网页的内容。因此
问题内容: 有人知道iOS的Elasticsearch客户端库吗?如果它也是迅速写的,那将是一个好处。 elasticsearch的“客户端”部分显示了多个平台的多个库,但对于iOS没有任何显示,我觉得有人必须这样做吗? 干杯 问题答案: 我怀疑是否有人- 上次我检查时没有,并且有充分的理由。请记住,为了允许IOS客户端(或Android)使用客户端库连接到Elasticsearch,您必须打开集
我有一个连接到WebSocket服务器并从服务器接收消息的微服务。我想在这个应用程序中集成Sleuth,因为这是我的一组微服务的网关。但是当我连接到WebSocket服务器并开始接收消息时,我无法在日志中跟踪ID,spanid。我期待着这样的事情: 但我得到了: 我的代码如下: 我们的pom条目包括:
我需要阻止用户访问Keycloak帐户客户机(/auth/realms/[MYREALM]/Account),但我需要这个客户机提供的Rest API。 我用的是Keycloak 4.1.0。我试图通过keycloak管理面板(/auth/admin/master/console/#/realms/[MYREALM]/clients)禁用account client,但是如果禁用此客户端,acco
然后我使用: 这似乎无法为那些设置了该属性的客户机提供一个clusergroup。这对客户端节点不起作用吗?
问题内容: 我正在研究适用于Android和Java的Retrofit REST客户端。 在Eclipse中使用标准Java项目,我在使用@POST且返回类型无效。 进行异步调用。 一切都按预期工作,但是我的测试主方法永远不会终止。我必须手动停止每个测试执行。 为了使测试自动终止,我需要做什么(或停止做什么)? 这是我的Java代码。 问题答案: 默认情况下,Retrofit使用具有60s核心池超