簡體   English   中英

在Android的Facebook牆上發布信息?

[英]Post on facebook wall in android?

在手機的Android Gallery中,有一個選項可以將圖像共享到Facebook並將其發布在牆上 。我想以與我的應用程序完全相似的方式將消息或圖像發布到牆上。做了什么?

我的理解 :我相信它使用我手機中已經存在的Facebook應用程序。如果是這樣,那么我可以啟動該特定活動或從我的應用程序中拋出與該活動相對應的意圖。如果是這樣,有人可以讓我知道是我應該拋出的相應意圖 我應該在意圖中傳遞哪些參數?我應該以什么鍵名傳遞這些參數?

如果我的理解是錯誤的,請糾正我,並讓我知道如何完成。

PS :根據這個精彩的帖子,我一直在使用facebook sdk Android / Java-在Facebook牆上發布簡單的文字? 它的工作原理。但是對話框看起來並不好。這就是為什么我要尋找其他選項。

謝謝

我認為您正在尋找ACTION_SEND意圖。

這篇文章

編輯: 及其文檔

第二編輯:請注意,如果該人沒有Facebook應用程序,則將無法共享。 如果您使用Facebook API ,那么他將能夠共享到facebook,但僅限於facebook。

長期研究。 終於我找到了解決方案。

對我來說很好。

private void postToFacebookViaIntent() {
File mFile = new File(Environment.getExternalStorageDirectory()+ "/images.jpg");
    Intent shareIntent = findFacebookClient();

    if (shareIntent != null &&  mFile!= null) {

        shareIntent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(mFile)); 
        startActivity(Intent.createChooser(shareIntent, "Share"));
    } else {
        Toast.makeText(SharingActivity.this, "Facebook App is not installed", Toast.LENGTH_SHORT).show();
    }

}

private Intent findFacebookClient() {
    final String twitterApps = "facebook";
    Intent facebookIntent = new Intent();
    facebookIntent.setAction(Intent.ACTION_SEND);
    facebookIntent.setType("image/jpeg");
    final PackageManager packageManager = getPackageManager();
    List<ResolveInfo> list = packageManager.queryIntentActivities(
            facebookIntent, 0);

    for (ResolveInfo resolveInfo : list) {
        String p = resolveInfo.activityInfo.packageName;
        if (p != null && p.contains(twitterApps)) {
            facebookIntent.setPackage(p);
            return facebookIntent;
        }
    }
    return null;
}

暫無
暫無

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

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