近期做了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. SQL注入语句 (很全)

    1.返回的是连接的数据库名and db_name()>02.作用是获取连接用户名and user>03.将数据库备份到Web目录下面;backup database 数据库名 to dis ...

  2. Android-Uiautomator:[5]停止monkey测试

    方法/步骤 1 其实停止很简单,无非就是结束掉monkey的进程即可 如何停止呢 2 ps命令  查找uiautomator的进程 打开cmd命令行窗口 输入: adb shell ps | grep ...

  3. hdu 4499 Cannon(暴力)

    题目链接:hdu 4499 Cannon 题目大意:给出一个n*m的棋盘,上面已经存在了k个棋子,给出棋子的位置,然后求能够在这种棋盘上放多少个炮,要求后放置上去的炮相互之间不能攻击. 解题思路:枚举 ...

  4. nginx+keepalive主从双机热备+自动切换解决方案

    环境采集cenots 6.3 64位迷你安装,因为安装前,你需要做一些工作 yum install -y make wget 如果你愿意可以更新下系统,更换下yum源. 1.安装keepalive 官 ...

  5. [Reduc] React Counter Example

    Before you use the React Redux bindings, learn how to create a complete simple application with just ...

  6. Event Delivery: The Responder Chain(事件传递,响应链)

    当我们设计app的时候,我们很可能想动态的响应事件.例如,触摸一个拥有许多不同对象的屏幕,你要决定给哪个对象一个响应事件,怎么样对象接收到事件. 当一个用户产生事件发生时(如 点击),UIKit产生一 ...

  7. [转] 查看CPU使用率 top命令详解

    一 top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前 台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示 ...

  8. Java基础知识强化23:Java中数据类型转换(面试题)

    1. 以下代码输出结果是( D ).                     public  class  Test   {                                       ...

  9. android使用微软EWS发送邮件

    通常我们在android使用javamail发送邮件,可是很多时候我们需要连接Exchange服务(很多公司内部邮件服务器采用,并且未开通smtp服务)来发送邮件,这时候我们就要用到微软的 ews-j ...

  10. 配置keil MDK和keil C51共存

    配置keil MDK和keil C51共存:1.首先安装keilMDK或者安装KeilC51其中一个:2.安装到D:\keil路径下,按照默认的配置安装,完成:3.使用管理员身份打开安装好的软件,打开 ...