アプリから Facebook にログインしようとすると、奇妙な動作が発生します。ただし、この動作は、エミュレーターと他の 2 つのデバイス (Galaxy Y、Android 2.3.5/2.3.6) では表示されません。
壁にテキストを公開したい。公開ボタンをクリックすると、ユーザーがログインしていないことが検出され、ダイアログ ボックスが表示され、アプリが私の代わりにいくつかの情報を公開したいとユーザーに伝えます。ここまでは異常なし。
問題は、ユーザーが「OK」ボタンを押した後、読み込みダイアログが表示され、すぐに消えることです。Facebook のログイン画面は表示されず、ユーザーもログインしていません。
例外が 1 つ発生します (他のデバイスには存在しません)。
SpannableStringBuilder(24080): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
コード:
private void OpenPublishingConnection() {
if (Session.getActiveSession().isClosed()) {
Session.openActiveSession(this, true, status);
}
if (Session.getActiveSession().isOpened() == false && Session.getActiveSession().isClosed() == false) {
Session.getActiveSession().openForPublish(new OpenRequest(this).setPermissions(Arrays.asList(PERMISSION_PUBLISH)).setCallback(status));
} else {
if (Session.getActiveSession().isClosed() == true) {
Session.getActiveSession().requestNewPublishPermissions(new NewPermissionsRequest(this, Arrays.asList(PERMISSION_PUBLISH)));
} else {}
}
}
public void Publish(Bundle b) {
OpenPublishingConnection();
Request req = new Request(Session.getActiveSession(), "me/feed", b, HttpMethod.POST, callback);
RequestAsyncTask rat = new RequestAsyncTask(req);
rat.execute();
}