Android分享功能实现

通过系统分享组件实现分享功能

Intent.createChooser() 方法用来弹出系统分享列表。 
createChooser(Intent target, CharSequence title, IntentSender sender) 参数。

常规方法

 public void share(Context context){
        Intent sendIntent = new Intent();
        sendIntent.setAction(Intent.ACTION_SEND);
        sendIntent.putExtra(Intent.EXTRA_TEXT, content);
        sendIntent.setType("text/plain");
        context.startActivity(sendIntent);
  }

可以调用 手机中 所有的开发分享接口的应用,进行分享。

选取特定应用分享方法

举例 :纯文本分享给 QQ 好友(QQ 官方分享 SDK 是不支持纯文本分享的,但通过这种方式可以)

 public void shareQQ(Context mContext){
    Intent sendIntent = new Intent();
        sendIntent.setAction(Intent.ACTION_SEND);
        sendIntent.putExtra(Intent.EXTRA_TEXT, content);
        sendIntent.setType("text/plain");
        //sendIntent.setPackage("com.tencent.mobileqq");
        // List<ResolveInfo> list= getShareTargets(mContext);
        try {
            sendIntent.setClassName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.JumpActivity");
            Intent chooserIntent = Intent.createChooser(sendIntent, "选择分享途径");
            if (chooserIntent == null) {
                return;
            }
            mContext.startActivity(chooserIntent);
        } catch (Exception e) {
            mContext.startActivity(sendIntent);
        }
    }

获得 手机 中 支持 纯文本分享的所有列表:

   /* 获得支持ACTION_SEND的应用列表 */
    private List<ResolveInfo> getShareTargets(Context context) {
        Intent intent = new Intent(Intent.ACTION_SEND, null);
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        intent.setType("text/plain");
        PackageManager pm = context.getPackageManager();
        return pm.queryIntentActivities(intent, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
    }

其中涉及的两个 对象,可以点击查看详细说明: 
ResolveInfo 
ActivityInfo


怎样将自己的应用加入系统分享组件中?

先看一个腾讯微博的例子(网友反编译后的例子)

<activity android:name=".activity.MicroBlogInput" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation" android:windowSoftInputMode="stateAlwaysVisible|adjustResize">
   <intent-filter android:label="@string/albums_sendbyWBlog">
       <action android:name="android.intent.action.SEND" />
       <data android:mimeType="image/*" />                         
       <category android:name="android.intent.category.DEFAULT" />
   </intent-filter>
</activity> 

通过上面的可以看出下面这些是关键:

<intent-filter android:label="@string/albums_sendbyWBlog">
   <action android:name="android.intent.action.SEND" />
   <data android:mimeType="image/*" />                         
   <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

其中支持的类型可以多种,包括图片、纯文本、二进制等;

 <data android:mimeType="image/*" />   //可以是text/plain
时间: 2024-10-09 17:32:13

Android分享功能实现的相关文章

Android -- 分享功能和打开指定程序

打开指定程序                                                                                Intent intent = new Intent(); ComponentName cmp = new ComponentName("com.sina.weibo","com.sina.weibo.EditActivity"); intent.setAction(Intent.ACTION_M

android 分享功能

上一篇讲了android第三方登录,这一篇大概说一下分享.需要注意几点: 1.登录和分享功能都必须是签名之后的apk,才能用 2.再吐槽一下,微信SDK做的真他妈的变态,和登录一样,必须是例如我的apk,包名(也就是AndroidManifest.xml中的包名)是com.kingdowin.gosu,你项目中必须有一个包名是com.kingdowin.gosu.wxapi,下面有一个类是WXEntryActivity.java,里面写登录或分享以及获得返回响应结果(public void on

Android分享功能,微博、QQ、QQ空间等社交平台分享之入门与进阶

前言 如何能迅速做一个分享功能,那主要就是根据第一个步骤来做就好了,因为友盟的sdk包已经集成很多的内容了,只要你有相应的app和平台账号就可以能马上分享.进阶的内容就是从第三部分开始,这些内容不难,目的就是为了更好的优化分享体验. 1.先做一个简单的分享效果. 1.1 创建一个Android项目 以下项目所需要的jar包,图片等资源可到该网站下载SDK即可. http://dev.umeng.com/social/android/quick-integration?spm=0.0.0.0.Lk

Android 分享功能的实现

I : 利用隐式Intent实现分享    1.应用实现分享的功能        1 /* 实现分享功能 */ 2 3 Intent intent = new Intent(); 4 intent.setAction(Intent.ACTION_SEND); 5 6 // 分享文本 7 intent.setType("text/plain"); // text/html ... 8 intent.putExtra(Intent.EXTRA_SUBJECT, "我要分享&quo

Android分享功能的一点总结

前段时间给以前的App加了分享功能,与大家分享一些心得. 实现分享功能有三种方式: 1.调用Android自带的分享接口,这种方式最简单,它是直接调用App的发信息功能,把我们的链接通过信息方式发出去,因此它的分享效果比较差.同时它只能发送给手机上已安装的社交App.最坑的是有些App对此功能是屏蔽的,比如微信朋友圈.代码很简单,网上一搜就有,我就不赘述了. 2.通过第三方SDK来分享,国内比较常用的有友盟和MO.首先要去申请开发,然后下载SDK再调用相应接口就行,缺点是支持部分APP(国内的大

分享一套完整的android 分享功能代码

微信分享代码: <pre name="code" class="html">public class WXEntryActivity extends Activity implements OnClickListener, IWXAPIEventHandler { private IWXAPI api; api = WXAPIFactory.createWXAPI(this, Constant.WEIXIN_APP_ID, false); api.han

在Android中如何实现分享功能

Android应用中能很方便的完成这些功能,很多的应用中都有"分享"功能?如何分享呢?下面给大家说说看.最近有人问到Android分享功能用那个比较好,使用Android开发自带的Intent来进行分享还是借助第三方呢,直接上代码: 一.使用Intent直接和第三方应用进行通信: /** * 分享功能 * * @param context *            上下文 * @param activityTitle *            Activity的名字 * @param

Android APP代码拨打电话、打开手机分享功能等隐式意图

Android APP拨打电话: Intent intent=new Intent(Intent.ACTION_DIAL,Uri.parse("tel:"+110)); startActivity(intent); } Android APP打开电话薄: Intent intent = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI); startActivity(intent); Android

在Android中使App高速、简单地支持新浪微博、微信、QQ、facebook等十几个主流社交平台的分享功能

前言 在如今的APP或者游戏中,分享功能差点儿已经成为标配.分享功能不但能够满足用户的需求.也能够为产品带来很多其它的用户,甚至能够对用户的行为.活跃度.年龄段等情况进行数据统计,使得软件公司能够对产品进行更精准的定位.今天我们就来简单剖析市场上一款优秀的分享SDK以及其集成过程.这款分享SDK就是友盟的社会化分享组件. 友盟社会化分享,帮助移动应用高速具备分享.登录.评论.喜欢等社交功能,提升用户粘度.助力产品推广,并提供实时.全面的社会化数据统计分析服务. 很多其它请訪问友盟社会化组件官网.