zoukankan      html  css  js  c++  java
  • Android使用系统Intent实现分享功能及将应用加入分享列表++分享邮箱实现

    如何给应用增加分享功能,怎样将应用加入系统的分享选择列表?

    Intent.createChooser()方法用来弹出系统分享列表。

    查看Intent对应的组件是否存在,可查看Android判断Intent是否存在,是否可用

    1、应用增加分享功能

     
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    public class FenxiangActivity extends Activity {
        private Button btnFenXiang = null;
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            btnFenXiang = (Button) findViewById(R.id.btnFenXiang);
            btnFenXiang.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Intent.ACTION_SEND); // 启动分享发送的属性
                    intent.setType("text/plain"); // 分享发送的数据类型
                    intent.putExtra(Intent.EXTRA_SUBJECT, "subject"); // 分享的主题
                    intent.putExtra(Intent.EXTRA_TEXT, "extratext"); // 分享的内容
                    //intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// 这个也许是分享列表的背景吧
                    FenxiangActivity.this.startActivity(Intent.createChooser(
                            intent, "分享"));// 目标应用选择对话框的标题
                }
            });
        }

     

     

    上面的代码为分享文本,若想分享图片信息需要设置setType为“image/*”,传递一个类型为Uri的参数Intent.EXTRA_STREAM。

    2、应用加入系统分享列表
    只需在AndroidManifest.xml中加入以下代码:

    1
    2
    3
    4
    5
    6
    7
    <activity android:name=".SharePage" android:label="分享到微博">
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="image/*" />
        </intent-filter>
    </activity>

      下载 地址 :https://files.cnblogs.com/firecode/Fenxiang.rar

    Android:“分享到邮箱”的实现

     

    这是一个简单的分享到邮箱的实现,你可以附上自己的图片。

    1. //cacheDir是你所要共享的文件对象所在的目录
    2. //你可以用自己的文件对象覆盖File f
    3. File cacheDir = new File(android.os.Environment.getExternalStorageDirectory(), getString(getApplicationInfo().labelRes)); 
    4. File f = new File(cacheDir, "image_name.jpg"); 
    5.  
    6. Intent intent = new Intent(Intent.ACTION_SEND);
    7. intent.setType("image/jpeg");
    8. intent.putExtra(Intent.EXTRA_TEXT, "Email body over here");
    9. intent.putExtra(Intent.EXTRA_SUBJECT, "Email subject over here");
    10. intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
    11. startActivity(Intent.createChooser(intent, "Share via:"));

     

  • 相关阅读:
    一例千万级pv高性能高并发网站架构[原创]
    Download SymmetricDS Data Sync Software for Free
    阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房)
    青云QingCloud业内率先支持云端全面透明代理功能 | SDNLAB | 专注网络创新技术
    UCloud EIP 你真的懂得如何使用么?
    MySQL高可用性大杀器之MHA | 火丁笔记
    Zookeeper、Solr和Tomcat安装配置实践
    Best Premium Private Proxy Service | Lime Proxies
    突破LVS瓶颈,LVS Cluster部署(OSPF + LVS)
    Nodejs负载均衡:haproxy,slb以及node-slb
  • 原文地址:https://www.cnblogs.com/firecode/p/2685298.html
Copyright © 2011-2022 走看看