2016-12-21 5 views
0

Ich benutze Facebook ShareButton in meiner Android App. Die Anwendung versucht, einen Text in Facebook zu teilen. Meine App meldet sich erfolgreich bei Facebook an. Hash-Schlüssel und APP-Schlüssel in Manifest-Datei ist korrekt, ich habe überprüft.Facebook Share-Taste öffnet nicht Dialog in echten Android-Geräten

android:minSdkVersion="19" 
    android:targetSdkVersion="23" 

Ich verwende Viewpager mit verschachtelten Fragmenten. Ich setze Share-Taste in Facebook mit der folgenden Funktion und ich habe eine benutzerdefinierte Schaltfläche zum Einchecken definiert, wenn der Benutzer klickt Check-in, ich mache einen Klick auf Facebook Share-Taste. Dieser Senario funktioniert erfolgreich im Emulator, der Share-Button öffnet einen Login-Dialog, wenn der Benutzer sich mit einem anderen Provider als Shares anmeldet. Wenn sich der Benutzer mit Facebook anmeldet, öffnet er direkt den Freigabe-Dialog. Aber in realen Geräten, Knopf Klick öffnet nicht eine Freigabe-Dialog, aber es versucht einen kleinen Bildschirm-Effekt, aber nichts erscheint, nur das aktuelle Fragment zeigt. Aber Bildschirm wird deaktiviert (wie etwas anderes auf dem Bildschirm), wenn ich die Zurück-Taste drücke, wird die Anwendung zum aktuellen Zustand und das aktuelle Fragment wird funktionsfähig. Ich habe eine Suche im Internet, aber ich kann keine Lösung finden. Jeder hat eine Idee.

checkinButtonAll.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(isFacebook && facebookEnable.isChecked()) 
      { 
       // Create an object 
       ShareOpenGraphObject object = new ShareOpenGraphObject.Builder() 
         .putString("og:type", "restaurant.restaurant") 
         .putString("og:title", ((MainActivity) getActivity()).clickedRestaurantName) 
         .putString("og:description", uc.formCheckinText()) 
         .build(); 
       // Create an action 
       ShareOpenGraphAction action = new ShareOpenGraphAction.Builder() 
         .setActionType("restaurant.visited") 
         .putObject("restaurant", object) 
         .build(); 
       // Create the content 
       ShareOpenGraphContent content = new ShareOpenGraphContent.Builder() 
         .setPreviewPropertyName("restaurant") 
         .setAction(action) 
         .build(); 
       facebookCheckinButton.setShareContent(content); 
       facebookCheckinButton.performClick(); 
      } 

     } 
    }); 

Antwort

0

Das Problem ist aufgrund der Facebook App Einreichung Prozess. Im Entwicklermodus fordern Sie Berechtigungen vom Benutzer an und Facebook möchte nichts anderes als das. Aber wenn Sie Ihre App in Google Play (auch bei geschlossenem Betatest) platzieren, müssen Sie auf Facebook Ihre App veröffentlichen und die Schritte ausführen, um die erforderlichen Berechtigungen zu erhalten. Um beispielsweise eine Aktion auf Facebook zu veröffentlichen, benötigen Sie die Berechtigung publish_action und um die Erlaubnis zu erhalten, benötigt facebook Screenshots und Screencasts von Ihnen. Sie müssen die Schritte ausführen und eine Version im Bereich "App Review" Ihrer fb-Entwicklerkonsole einreichen.

Verwandte Themen