2016-05-12 6 views
7

Ich versuche, die Freigabe in meiner App zu verwenden, aber ich stieß auf ein Problem bei der Freigabe eines Links zu Facebook, keine Bilder mit der Vorschau angezeigt wird. Also versucht, die Androide Shareinntent so anzupassen, dass es die Share-Funktionalität von facebooksdk verwendet, wenn Facebook ausgewählt ist, aber ich kann nicht scheinen, es funktioniert zu bekommen. Unten ist der Code, den ich für das Anpassen der shareintent versucht,Verwenden Sie Facebook sdk ShareContent in Share Intent Android

Intent share = new Intent(android.content.Intent.ACTION_SEND);   
PackageManager pm = getPackageManager(); 
List<ResolveInfo> activityList = pm.queryIntentActivities(share, 0); 
for (final ResolveInfo app : activityList) { 
    if (app.activityInfo.packageName.toLowerCase().startsWith("com.facebook.katana")) { 
     ShareLinkContent content = new ShareLinkContent.Builder() 
          .setContentTitle(property.PropertyName) 
          .setImageUrl(Uri.parse(property.ImagePath)) 
          .setContentUrl(Uri.parse(property.PropertyPermaLink)) 
          .build(); 

     ShareDialog shareDialog = new ShareDialog(this); 

     shareDialog.canShow(content); 

     break; 
    } else { 
     share.setType("text/plain"); 
     share.addFlags(share.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 
     share.putExtra(Intent.EXTRA_SUBJECT, ""); 
     share.putExtra(Intent.EXTRA_TEXT, property.PropertyPermaLink); 
     startActivity(Intent.createChooser(share, "Share property!")); 
    } 
} 

den obigen Code nach dem Debuggen ich, dass der activitylist besteht aus einem einzigen Elemente nur gefunden. Wie kann ich dieses Problem beheben?

+0

überprüfen Sie diese Frage, vielleicht wird es Ihnen helfen http://StackOverflow.com/Questions/35155890/android-share-Custom-Link-Via-Facebook –

+0

Das ist nur für Facebook teilen. Aber ich möchte meine Share-Intention anpassen, um den gewünschten Facebook-Share aus der Absicht zu nutzen. –

Antwort

1

benötigen Sie den Mime-Datentyp hinzufügen, dass die Sende Absicht die entsprechenden Aktivitäten zurückgeführt zu bekommen ist der Umgang:

share.setType("text/plain"); 
0

Versuche mal SharePhotoContent statt ShareLinkContent. Wenn Sie ShareLinkContent verwenden möchten, stellen Sie sicher, dass property.ImagePath auf eine echte http-Bildverknüpfung zeigt. Wenn Link https enthält, überprüfen Sie, dass in der Standard-Android-Browser-App funktioniert.