0
當我通過Facebook對話框(未安裝fb應用程序)登錄後嘗試請求發佈權限時,系統會要求我再次登錄,之後所有內容都正常運行。有什麼辦法可以避免這個問題嗎?這是我的代碼:Android SDK 3.0:請求發佈perimissoins會導致再次登錄
private void login() {
Session.Builder builder = new Session.Builder(activity);
builder.setApplicationId(activity.getString(R.string.app_id));
builder.setTokenCachingStrategy(new SharedPreferencesTokenCachingStrategy(activity));
Session session = builder.build();
Session.setActiveSession(session);
Session.OpenRequest request = new Session.OpenRequest(activity).setCallback(new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
if (exception!=null) {
Toast.makeText(activity, exception.getMessage(), Toast.LENGTH_SHORT).show();
return;
}
if (session.isOpened())
checkAndRequestPermissions();
}
});
session.openForRead(request);
}
private void checkAndRequestPermissions() {
Session session = Session.getActiveSession();
List<String> permissionsList = new ArrayList<String>();
if (!session.getPermissions().contains(USER_PHOTOS_PERMISSION))
permissionsList.add(USER_PHOTOS_PERMISSION);
if (!session.getPermissions().contains(PUBLISH_ACTIONS_PERMISSION))
permissionsList.add(PUBLISH_ACTIONS_PERMISSION);
if (permissionsList.size()>0) {
Session.NewPermissionsRequest request = new Session.NewPermissionsRequest(activity, permissionsList);
session.requestNewPublishPermissions(request);
}
else {
publishOnFacebook(filesToPublish);
}
}
看到我的[類似的問題]答案(http://stackoverflow.com/questions/15244866) – 5agado