簡體   English   中英

Facebook權限對話框不提示

[英]Facebook Permission Dialog doesn't prompt

我正在創建一個向用戶詢問此權限的Android應用:默認登錄權限+ user_friends + publish_action。

在我的第一個活動中,我執行了Login +並請求“ user_friends”許可,並且運行良好。

現在,在我的第二個活動中,我想在選擇AlertDialog之后請求“ publish_action”權限。 問題是我從未被提示過“ publish_action”框,該應用程序跳過了請求並繼續調用另一個Activity(排行榜)

這是我的第二項活動:

CallbackManager callbackManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    FacebookSdk.sdkInitialize(getApplicationContext());

    setContentView(R.layout.activity_main);

callbackManager = CallbackManager.Factory.create();
final Context context = this;

//stuff   

b_exit.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View V)
        {

            final AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setMessage(getString(R.string.salva_dati))
                    .setCancelable(true)
                    .setPositiveButton(getString(R.string.si), new DialogInterface.OnClickListener() {
                        public void onClick(@SuppressWarnings("unused") final DialogInterface dialog, @SuppressWarnings("unused") final int id) {

                                    askForFBPublishPerm();

                                    SharedPreferences.Editor editor = sharedpreferences.edit();
                                    editor.clear();
                                    editor.apply();

                                    Intent intent = new Intent(getApplicationContext(), Leaderboard.class);
                                    startActivity(intent);   // IT START WITHOUT ASK ME THE PERMISSION
                                }
                            }
                        }
                    })
 }

 void askForFBPublishPerm(){
    Log.d("perm", "asking for the permissions");  //I  SEE THAT LOG BUT NOTHING MORE AFTER THAT LINE
    callbackManager = CallbackManager.Factory.create();
    LoginManager.getInstance().logInWithPublishPermissions(this,Arrays.asList("publish_actions"));

    LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
                Log.d("perm", "SUCCESS");//I DONT SEE THAT LOG
            }

        @Override
        public void onCancel() {
            Toast.makeText(getApplicationContext(), "cancelled while asking publish permission", Toast.LENGTH_LONG).show();
            Log.d("perm", "cancelled while asking publish permission");
            //I DONT SEE THAT LOG
        }

        @Override
        public void onError(FacebookException error) {
            Toast.makeText(getApplicationContext(), "error occurred while asking publish permission!", Toast.LENGTH_LONG).show();
            Log.d("perm", "error occurred while asking publish permission!");  //I DONT SEE THAT LOG

        }
    });

}

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

在我的日志中,我看到AskForFBPublishPerm()已被調用,但是它從未輸入onSuccess()或onCancel()或onError()。

我也通過Facebook審查了我的應用程序,他們給了我“ publish_action”權限。

此“發布動作”請求無效,我也不知道為什么 ,有人可以幫助我嗎? 謝謝建議

在onActivityResult中處理您的callbackManager。 只需應用此代碼。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data); // this line is required
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM