满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述Android应用程序使用Facebook登录无法安装Facebook App相关的知识,希望能为你提供帮助。
当我卸载Facebook App但没有安装Facebook App时,此代码运行良好。我正在使用Facebook SDK 4.0。
这是我的代码
package com.example.nhp04.gqfood;
import com.facebook.AccessToken;
import com.facebook.AccessTokenTracker;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.Profile;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;
public class Login extends AppCompatActivity implements Animation.AnimationListener {private String info = "";
private LoginButton loginButton;
private CallbackManager callbackManager;
private AccessTokenTracker tracker;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
setContentView(R.layout.activity_login);
loginButton = (LoginButton)findViewById(R.id.login_button);
loginButton.registerCallback(callbackManager, new FacebookCallback<
LoginResult>
() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken accessToken = loginResult.getAccessToken();
Profile profile = Profile.getCurrentProfile();
info = ("User ID: " + loginResult.getAccessToken().getUserId() + "
" + "Auth Token: " + loginResult.getAccessToken().getToken());
}@Override
public void onCancel() {
info = ("Login attempt canceled.");
}@Override
public void onError(FacebookException e) {
info = ("Login attempt failed.");
}
});
System.out.println(info);
tracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) {}
};
tracker.startTracking();
}
}
此功能用于检查登录
public boolean isLoggedIn() {
AccessToken accessToken = AccessToken.getCurrentAccessToken();
return accessToken != null;
}
【Android应用程序使用Facebook登录无法安装Facebook App】这在Resume和Stop方法上
@Override
protected void onResume() {
super.onResume();
if (isLoggedIn()){
Intent home = new Intent(this, home.class);
startActivity(home);
}
}@Override
protected void onStop() {
super.onStop();
tracker.stopTracking();
finish();
}
这是我的onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Intent home = new Intent(this, home.class);
startActivity(home);
} else {
Toast.makeText(getApplicationContext(), "Unable to login please check your internet connection",Toast.LENGTH_LONG).show();
}
}
答案你的
onActivityResult()
代码在哪里在onActivityResult()
你需要使用callbackmanager
。用户如下代码: @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
以上将在片段/活动中工作。确保你有
1. facebook app installed on your testing device
2. In facebook developer account check whether you have mentioned
- correct package name : refer your android project manifestfile.xml- check that have you mentioned correct launcher class
- Check that you have given correct debug/release hash key3. Cross check your facebook application id and that mentioned in your manifestfile.xml facebook meta data are same
在下面的代码更改中
在qazxsw poi之后创建你的qazxsw poi;
将它改为
callbackmanager
以下请记住,如果这是你的Facebook问题,那么你的问题就在于此,不要浪费时间去搜索其他东西。还在facebook sdk的回调中放入登录失败方法。
如果您还有问题,请发表评论
另一答案您可以在Facebook应用中删除您的应用。喜欢你可以在go设置> > 帐户设置> > app > > 你的应用程序> > 删除打开Facebook应用程序。删除你的应用程序后卸载你的应用程序。并重新安装它,并检查登录与Facebook工作与否。
另一答案请更改您的facebook sdk版本,在清理并重建您的应用程序后它将起作用
推荐阅读
- Android SDK下载作为Gradle Build的一部分
- Android模拟器(安装错误:INSTALL_FAILED_VERSION_DOWNGRADE)
- 如果Android版本在“X”下如何隐藏ImageButton()
- 如何解决android studio的编译错误()
- 试图调用方法'applyForce'
- 如何只用月份和年份字段显示android的日期选择器()
- Android Studio(SDK目录不存在)
- Android设备监视器无法在Ubuntu 17.10中打开
- 如何用android studio 2.3.2下载旧版本的android sdk平台()