Android 如何在不使用Facebook SDK的情况下提示用户发布Facebook帖子?

Android 如何在不使用Facebook SDK的情况下提示用户发布Facebook帖子?,android,facebook,Android,Facebook,我想让用户在我的应用程序中按下一个按钮,它会将他们带到Facebook,并将消息打印出来。下面是我为Twitter做的事情。我是否可以为Facebook做类似的事情,而不必集成Facebook SDK public void twitterTweetButtonPressed(View view) { String tweetUrl = String.format("https://twitter.com/intent/tweet?text=%s&url=%s",

我想让用户在我的应用程序中按下一个按钮,它会将他们带到Facebook,并将消息打印出来。下面是我为Twitter做的事情。我是否可以为Facebook做类似的事情,而不必集成Facebook SDK

public void twitterTweetButtonPressed(View view)
    {
        String tweetUrl = String.format("https://twitter.com/intent/tweet?text=%s&url=%s", urlEncode("My tweet goes here"), urlEncode(""));
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(tweetUrl));

        List<ResolveInfo> matches = getPackageManager().queryIntentActivities(intent, 0);

        for (ResolveInfo info : matches)
        {
            if (info.activityInfo.packageName.toLowerCase().startsWith("com.twitter")) {
                intent.setPackage(info.activityInfo.packageName);
            }
        }

        startActivity(intent);
    }
public void twitter推文按钮按下(查看)
{
String tweetUrl=String.format(“https://twitter.com/intent/tweet?text=%s&url=%s“,urlEncode(“我的推特发到这里”),urlEncode(“”);
Intent Intent=新的Intent(Intent.ACTION_视图,Uri.parse(tweetUrl));
列表匹配项=getPackageManager().QueryInputActivities(intent,0);
对于(ResolveInfo:matches)
{
if(info.activityInfo.packageName.toLowerCase().startsWith(“com.twitter”)){
intent.setPackage(info.activityInfo.packageName);
}
}
星触觉(意向);
}

是的,你基本上可以使用包名com.facebook.katana做同样的事情,使用相同的操作(
操作视图
)并使用额外的Intent.extra\u文本来设置文本。

如果安装了官方的facebook应用程序,这段代码会直接打开,否则会返回到在浏览器中打开sharer.php

String urlToShare = "http://stackoverflow.com/questions/28534813";
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
// intent.putExtra(Intent.EXTRA_SUBJECT, "Foo bar"); // NB: has no effect!
intent.putExtra(Intent.EXTRA_TEXT, urlToShare);

// See if official Facebook app is found
boolean facebookAppFound = false;
List<ResolveInfo> matches = getPackageManager().queryIntentActivities(intent, 0);
for (ResolveInfo info : matches) {
    if (info.activityInfo.packageName.toLowerCase().startsWith("com.facebook.katana")) {
        intent.setPackage(info.activityInfo.packageName);
        facebookAppFound = true;
        break;
    }
}

// As fallback, launch sharer.php in a browser
if (!facebookAppFound) {
    String sharerUrl = "https://www.facebook.com/sharer/sharer.php?u=" + urlToShare;
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse(sharerUrl));
}

startActivity(intent);
字符串urlToShare=”http://stackoverflow.com/questions/28534813";
意向意向=新意向(意向.行动\发送);
intent.setType(“文本/普通”);
//intent.putExtra(intent.EXTRA_主题,“Foo-bar”);//注:没有效果!
intent.putExtra(intent.EXTRA_TEXT,urlToShare);
//查看是否找到Facebook官方应用程序
布尔facebookAppFound=false;
列表匹配项=getPackageManager().QueryInputActivities(intent,0);
对于(ResolveInfo:matches){
if(info.activityInfo.packageName.toLowerCase().startsWith(“com.facebook.katana”)){
intent.setPackage(info.activityInfo.packageName);
facebookAppFound=true;
打破
}
}
//作为备用方案,在浏览器中启动sharer.php
如果(!facebookAppFound){
字符串sharerUrl=”https://www.facebook.com/sharer/sharer.php?u=“+urlToShare;
intent=newintent(intent.ACTION_视图,Uri.parse(sharerUrl));
}
星触觉(意向);
希望我上面的代码能帮助你


如果您需要我的帮助,请告诉我。

谢谢。如果我不想共享url怎么办?如果我只想发短信,你会怎么做?就像状态信息。不,这是不可能的。如果你想分享,那么你可以通过URL分享,而不用facebook SDKOh ok。是否可以为链接添加标题?我尝试取消对该行的注释(intent.puttera(intent.EXTRA_SUBJECT,“Foo bar”);//注意:没有效果!),但这不起作用。EXTRA_SUBJECT和EXTRA_BODY在facebook应用程序中不起作用。不可能预先填充消息,并且违反facebook平台策略。我建议您阅读并特别阅读2.3