0
我遇到了這個麻煩:當我嘗試執行「Profile.getprofile()」 方法時,即使使用ProfileTracker它也會返回null。facebook sdk4 android getprofile
這裏是我的代碼:
public class Login extends Activity implements OnClickListener,ConnectionCallbacks, OnConnectionFailedListener {
//TODO Facebook
ProfileTracker mProfileTracker;
private CallbackManager callbackManager;
final List<String> permisos = new ArrayList<String>();
private FacebookCallback<LoginResult> fb = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
mProfileTracker = new ProfileTracker() {
@Override
protected void onCurrentProfileChanged(Profile profile, Profile profile2) {
}
};
mProfileTracker.startTracking();
AccessToken token = loginResult.getAccessToken();
Profile user = Profile.getCurrentProfile();
String name = user.getName();
Toast.makeText(Login.this, "Connected "+name , Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
};
我的onCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
setContentView(R.layout.init_login);
imgFacebook = (ImageView) findViewById(R.id.login_img_facebook);
imgFacebook.setOnClickListener(this);
permisos.add("user_friends");
permisos.add("public_profile");
LoginManager.getInstance().setLoginBehavior(LoginBehavior.SUPPRESS_SSO);
LoginManager.getInstance().registerCallback(callbackManager, fb);
}
我的onClick:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.login_img_facebook:
LoginManager.getInstance().logInWithReadPermissions(this,permisos);
break;
}
}
我onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
我加入到我的清單:
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
<activity android:name="com.facebook.FacebookActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
通過我使用eclipse,而不是Android的工作室的方式
謝謝!這對我有效,但現在我有另一個疑問...我第一次登錄它工作正常,但在第一次後,它並沒有出現我吐司:( – Fran
可能是由於你的'ProfileTracker'只在'FacebookCallback'的'onSuccess()'方法中被激活,我認爲它不被稱爲.. 或者,也許配置文件甚至沒有改變,因爲你已經登錄了..也嘗試直接獲取它。 .. –