近期做了facebook的分享功能,遇到了很多问题,这里总结一下,供大家参考,不足之处还请大家指正。

facebook分享方式:

1.通过intent调用调用本地facebook应用方式

支持单独分享链接或图片

2.集成facebook SDK调用本地facebook应用方式(这个我掌握的不全,下面只是提供一些参考信息)

支持单独分享链接或图片

参考链接:

http://www.eoeandroid.com/thread-311258-1-1.html

http://blog.csdn.net/gebitan505/article/details/26683671

其实facebook sdk里带的样例“HelloFacebookSample”就是带有链接和图片分享样例的,但是对于图片分享,有一个问题,我改变了app_id之后,就无法分享图片了,这个问题没有找到解决办法; 另外一个需要注意的,样例直接运行补了,会提示应用的hash key不对。

3.集成facebook SDK调用facebook API  (这种方式我没有实际使用,这里只是罗列一下,就不细写了)

详细介绍:

1.通过intent调用调用本地facebook应用方式:

效果图:

1)链接方式

2)图片方式

主要代码:

private void shareLinkToFacebook() {
shareLinkToByType("facebook", "http://www.baidu.com",null);
} private void sharePhotoToFacebook() {
String imageFilePath = "/storage/sdcard1/1.jpg";
shareLinkToByType("facebook", null,imageFilePath);
} private void shareLinkToByType(String partPackageName,String url,String imageFilePath) {
String fullPackageName = getFullPackageName(partPackageName);
if(fullPackageName==null)
return;
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setPackage(getFullPackageName(partPackageName));
if (isFileExist(imageFilePath)) {
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM,
Uri.fromFile(new File(imageFilePath)));
}
else
{
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, url);
}
startActivity(Intent.createChooser(intent, "Select"));
} private String getFullPackageName(String packageName) {
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/plain");
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(
intent, 0);
if (!resInfo.isEmpty()) {
for (ResolveInfo info : resInfo) {
if (info.activityInfo.packageName.toLowerCase().contains(
packageName)
|| info.activityInfo.name.toLowerCase().contains(
packageName)) {
return info.activityInfo.packageName;
}
}
}
return null;
} private boolean isFileExist(String filePath) {
if (filePath != null) {
File file = new File(filePath);
return file.exists();
}
return false;
}





安卓,分享到facebook的若干种方法汇总的更多相关文章

  1. HTML中footer固定在页面底部的若干种方法

    <div class="header"><div class="main"></div></div> <d ...

  2. .net(C#)操作文件的几种方法汇总

    .net(C#)操作文件的几种方法汇总 System.IO命名空间下类的用法:在System.IO名称空间中包含了用于文件输入输出的主要类.File:实用类,提供许多静态方法,用于移动.复制和删除文件 ...

  3. Linux下查看线程数的几种方法汇总

    Linux下查看线程数的几种方法汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux下查看某个进程的线程数量 pstree命令以树状图显示进程间的关系(display ...

  4. PHP获取POST数据的几种方法汇总

    一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-form-urle ...

  5. Android数据传递的五种方法汇总

    Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起.它们各有利弊,有各自的应用场景. 我现在把它们集中到一个例子中展示,在例 ...

  6. Android数据存储的五种方法汇总

    本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 ...

  7. Win7系统打开服务管理界面的几种方法汇总

    转自:https://www.jb51.net/os/windows/318465.html Win7服务管理包含了计算机操作系统和应用程序提供的所有服务,但是这么多服务并非总是用户所需的.比如打印机 ...

  8. Android项目实战(二):安卓应用程序退出的三种方法

    现在的APP退出的时候都不是让用户点击了“后退键”就退出.防止用户点错了后退键而造成的用户体检不好. 一年前搞的Demo代码不见了,重新写下就当是复习和以后直接拿来用把 目前流行的解决一般分为两种: ...

  9. Android基础知识02—安卓日志工具LogCat的五种方法

    --------Android 02-------- >>> Android的日志工具LogCat    五个方法,记录信息的级别不一样,从低到高为:    1.Log.v()-日志 ...

随机推荐

  1. duilib DirectUI库里面的一个简单的例子RichListDemo

    1.首先来看这里的CRichListWnd 已经不再是从CWindowWnd继承了 classCRichListWnd:publicWindowImplBase 从WindowImplBase中,可以 ...

  2. ViewPager 详解(四)----自主实现滑动指示条

    前言:前面我们用了三篇的时间讲述了有关ViewPager的基础知识,到这篇就要进入点实际的了.在第三篇<ViewPager 详解(三)---PagerTabStrip与PagerTitleStr ...

  3. jquery跳出当前的each循环

    break----用return false; continue --用return ture; jquery是对象链,所以$(..).each()返回的还是对象集合.each(function(){ ...

  4. NYOJ -37回文字符串

    这道题看了好大会没有思路,上网一搜发现这么简单,但是我为什么就想不到呢,??就是求和它的逆序之后的字符串最长公共子序列,然后用总的长度减去它就行了.原因是是因为只要是在公共子序列里面,那么他就是对称的 ...

  5. Java多线程——线程池

    系统启动一个新线程的成本是比较高的,因为它涉及到与操作系统的交互.在这种情况下,使用线程池可以很好的提供性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池. 与数据库连接池类似 ...

  6. C# ashx生成的验证码

    public void ProcessRequest(HttpContext context) { context.Response.ContentType = "image/jpeg&qu ...

  7. div中的内容居中

    要使div中的内容居中显示,不仅div要设定“text-align:centr"  ,内置对象要添加margin:auto;属性才能使其在firefox等其他浏览器中也能居中.

  8. Sql 中常用日期转换Convert(Datetime)

    CONVERT(data_type,expression[,style]) convert(varchar(10),字段名,转换格式) 说明:此样式一般在时间类型(datetime,smalldate ...

  9. JavaScript--Json对象

    JSON(JavaScript Object  Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何 ...

  10. IO流文件字符输入输出流,缓冲流

    由于字节输入输出流在操纵Unicode字符时可能有乱码现象 于是就有了操作字符的输入输出流 Reader ,Writer和他们的子类FileReader,FileWrite(其实就是用来辅助构造的 W ...