gpt4 book ai didi

java - Facebook SDK - 登录后没有任何反应

转载 作者:行者123 更新时间:2023-11-30 08:45:03 28 4
gpt4 key购买 nike

目前创建了一个 Facebook 登录按钮,我现在正尝试在成功登录后重定向到一个新 Activity 。为此,我当然会使用 onSucces() 函数。

但是,当我在我的应用程序上单击登录时,它会加载,但没有任何反应。它停留在登录页面。

我的 LoginActivity 代码:

package com.example.frederik.testpleasework;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

import com.facebook.AccessToken;
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 LoginActivity extends Activity {

LoginButton login;
TextView info;
CallbackManager callbackManager;

//Creating and initializing the feature(Code from Facebook install guide)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext()); //Calls for the facebook feature
callbackManager = CallbackManager.Factory.create(); //Initializing callback, checking login result
setContentView(R.layout.content_main);
info = (TextView) findViewById(R.id.info);
login = (LoginButton) findViewById(R.id.login_button);

login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Intent i = new Intent(LoginActivity.this, LandingActivity.class);
startActivity(i);
}

@Override
public void onCancel() {

}

@Override
public void onError(FacebookException e) {

}
});
}

}

以及我下一个 Activity (LandingActivity) 的代码:

package com.example.frederik.testpleasework;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;

public class LandingActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_landing);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}

}

我假设错误出在其中一个类中,但如果您需要其他代码部分的更多信息,请随时提出请求。

编辑,androidmanifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.frederik.testpleasework" >

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
</activity>
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity android:name=".LoginActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/fbid" />

<uses-permission android:name="android.permission.CAMERA" />
//Requests permission to use the camera
<uses-feature android:name="android.hardware.camera" />
//A device NEEDS to have a camera to install the app
<activity
android:name=".LandingActivity"
android:label="@string/title_activity_landing"
android:theme="@style/AppTheme.NoActionBar" >
</activity>
</application>

</manifest>

最佳答案

第一步,初始化facebook sdk:

FacebookSdk.sdkInitialize(this.getApplicationContext());

第二步,创建回调管理器:

CallbackManager callbackManager = CallbackManager.Factory.create();

第三步,添加读取权限:

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));

下一步,注册回调:

LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {...});

上面的所有代码都可以放在onCreate 方法中。最后,你必须添加 onActivityResult 用于回调:

@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}

试试这个代码,希望对你有帮助。您可以引用 this .

关于java - Facebook SDK - 登录后没有任何反应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33476069/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com