我在我的 Android Studio 3.0 上运行 Glympse Sdk 示例,我能够运行该示例,但发现一些问题,例如 sdk 无法与 Studio 正常工作,请参阅下面的 Dropbox 链接以查看屏幕截图:-
https://www.dropbox.com/personal?preview=Glympse.png
项目正在运行,但我无法使用任何帐户在 Glympse 中进行签名,也无法通过跳过登录。
我在 Facebook 上使用这个功能:-
public void fbLogin() {
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList(this.getString(R.string.fb_email), this.getString(R.string.fb_public_profile)));
LoginManager.getInstance().registerCallback(_callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
mSocialFbToken = com.facebook.AccessToken.getCurrentAccessToken().getToken().toString();
GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
try {
GPrimitive profile = GlympseFactory.createFacebookAccountProfile(mSocialFbToken);
GlympseWrapper.instance().getGlympse().logout();
GlympseWrapper.instance().getGlympse().login(profile);
GlympseWrapper.instance().getGlympse().start();
} catch (Exception e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id, name, email, first_name,birthday,last_name,gender");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
if (error instanceof FacebookAuthorizationException) {
if (com.facebook.AccessToken.getCurrentAccessToken() != null) {
LoginManager.getInstance().logOut();
fbLogin();
}
}
}
});
}
请参考以下链接:-
https://www.dropbox.com/s/9ao6pl532pmumiw/glypseFbLoginProcess.png?dl=0
行执行后:-
GPrimitive profile = GlympseFactory.createFacebookAccountProfile(mSocialFbToken);
这是我在评估 GPrimitive 对象时得到的:-
https://www.dropbox.com/s/w6n3fj0l7eq3hnx/glympsecreate.png?dl=0
我的调试在这个回调中停止了:-
@Override
public void eventsOccurred(GGlympse glympse, int listener, int events, Object obj) {
if (GE.LISTENER_PLATFORM == listener) {
if (0 != (events & GE.PLATFORM_ACCOUNT_CREATE_FAILED)) {
// Check for a failure to create a Glympse account. This can happen for several reasons,
// but in this case, it's most likely invalid or expired tokens from a third-party service.
Toast.makeText(this, "Error: Federated login failed.", Toast.LENGTH_LONG).show();
setTitle("Account Linking", false);
}
if (0 != (events & GE.PLATFORM_SYNCED_WITH_SERVER)) {
// If we successfully sync with the server, then we have a valid Glympse user account and
// up-to-date access tokens, so show the "account linking" view from which the user can
// choose to link new accounts, unlink existing accounts or logout.
Intent intent = new Intent(this, LinkedAccountsActivity.class);
startActivity(intent);
setTitle("Account Linking", false);
}
}
}
似乎是不匹配的东西,但是当我尝试评估GE.LISTENER_PLATFORM它说找不到任何局部变量 GE
请让我知道我需要更新或在我的代码中放置什么,以便它开始识别以下两个包:-
- com.glympse.android.api
- com.glympse.android.core
这是我的 setting.gradle 文件:-
include ':accountLinkingDemo'
include ':GlympseApi'
project(':GlympseApi').projectDir = new File('../GlympseApi')
请让我知道我还剩下什么,或者我在这方面做错了什么。我已经按照 Glympse 主页上的入门流程中提到的每个步骤进行操作:-
https://developer.glympse.com/docs/core/client-sdk/guides/platforms/intro-android
我是这个 SDK 的新手,想了解它是如何工作的,以便我可以在我的应用程序中看到它。
我试图解决这些兼容性问题,但 Glympse Api 仍然没有得到工作室的认可。
有没有人遇到过这个问题?任何帮助将不胜感激!!!
谢谢。