安卓,分享到facebook的若干种方法汇总
近期做了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的若干种方法汇总的更多相关文章
- HTML中footer固定在页面底部的若干种方法
<div class="header"><div class="main"></div></div> <d ...
- .net(C#)操作文件的几种方法汇总
.net(C#)操作文件的几种方法汇总 System.IO命名空间下类的用法:在System.IO名称空间中包含了用于文件输入输出的主要类.File:实用类,提供许多静态方法,用于移动.复制和删除文件 ...
- Linux下查看线程数的几种方法汇总
Linux下查看线程数的几种方法汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux下查看某个进程的线程数量 pstree命令以树状图显示进程间的关系(display ...
- PHP获取POST数据的几种方法汇总
一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-form-urle ...
- Android数据传递的五种方法汇总
Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起.它们各有利弊,有各自的应用场景. 我现在把它们集中到一个例子中展示,在例 ...
- Android数据存储的五种方法汇总
本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 ...
- Win7系统打开服务管理界面的几种方法汇总
转自:https://www.jb51.net/os/windows/318465.html Win7服务管理包含了计算机操作系统和应用程序提供的所有服务,但是这么多服务并非总是用户所需的.比如打印机 ...
- Android项目实战(二):安卓应用程序退出的三种方法
现在的APP退出的时候都不是让用户点击了“后退键”就退出.防止用户点错了后退键而造成的用户体检不好. 一年前搞的Demo代码不见了,重新写下就当是复习和以后直接拿来用把 目前流行的解决一般分为两种: ...
- Android基础知识02—安卓日志工具LogCat的五种方法
--------Android 02-------- >>> Android的日志工具LogCat 五个方法,记录信息的级别不一样,从低到高为: 1.Log.v()-日志 ...
随机推荐
- 杭电 HDU ACM 1698 Just a Hook(线段树 区间更新 延迟标记)
欢迎"热爱编程"的高考少年--报考杭州电子科技大学计算机学院 Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memor ...
- Mysql事务及行级锁的理解
在最近的开发中,碰到一个需求签到,每个用户每天只能签到一次,那么怎么去判断某个用户当天是否签到呢?因为当属表设计的时候,每个用户签到一次,即向表中插入一条记录,根据记录的数量和时间来判断用户当天是否签 ...
- js window.open()弹出窗口参数说明及居中设置
window.open()可以弹出一个新的窗口,并且通过参数控制窗口的各项属性. 最基本的弹出窗口代码 window.open('httP://codeo.cn/'); window.open()各参 ...
- C#正则怎么判断字符串中是否有汉字
Regex r = new Regex(".*[\\u4e00-\\u9faf].*");r.IsMatch(username)
- hdu 2544
#include <iostream> #include <cstdio> #define INF 9999999 //#define INF 0x3f3f3f3 using ...
- 基于jQuery仿uploadify的HTML5图片上传控件jquery.html5uploader
(function($){ var methods = { init:function(options){ return this.each(function(){ var $this = $(thi ...
- java: cannot execute binary file
转自:http://jxwpx.blog.51cto.com/15242/222572 java: cannot execute binary file 如果遇到这个错,一般是操作系统位数出问题了. ...
- Java反射 - 2(对象复制,父类域,内省)
为什么要复制对象?假设有个类Car,包含name,color2个属性,那么将car1对象复制给car2对象,只需要car2.setName(car1.getName)与car2.setColor(ca ...
- restful风格的webservice开发之概念准备篇
理解restful:什么是rest,rest是Representational State Transfer的缩写,翻译过来就是“表现层状态转化”.这里有点不准确,其实rest省略了主语表现层指的是资 ...
- nuc950支持nand的mtd驱动的kernel修改
支持nand的mtd驱动的kernel修改 一.更新nanddriver文件 将新的nanddriver文件nuc900_nand.c放到kernel的drivers/mtd/nand目录下 二.修改 ...