我正在嘗試構建一個示例Android應用程序,該應用程序連接到Facebook SDK,登錄Facebook並在牆上發佈消息。如何將LoginResult從Facebook登錄傳遞給Android中的Intent
LoginManager.getInstance().logInWithPublishPermissions(MainActivity.this, Arrays.asList("manage_pages,publish_pages"));
LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult result) {
serialize_login sl = new serialize_login();
sl.result=result;
Intent myIntent = new Intent(MainActivity.this,PublishMessage.class);
myIntent.putExtra("LoginResult",sl);
startActivity(myIntent);
}
如果登錄成功,我想調用另一個會照顧郵件發佈的活動。我需要accessToken來實現這一點,我試圖將它傳遞給Intent。由於Intent只接受String,所以我構建了一個名爲serialize_login
的可序列化類。在接收端,我這樣做
LoginResult lr = (LoginResult)myIntent.getExtras().getSerializable("result");
GraphRequest request = GraphRequest.newPostRequest(lr.getAccessToken(), pageID
, null, new GraphRequest.Callback() {
我收到以下異常。
Caused by: java.io.NotSerializableException: com.facebook.login.LoginResult
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1364)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1671)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1517)
有人可以幫忙嗎?如果序列化是不應該做的事,我怎麼傳遞一個對象的意圖(字符串以外)