您的位置:首页 > 移动开发 > Android开发

Android使用系统Intent实现分享功能及将应用加入分享列表++分享邮箱实现

2012-09-14 17:22 1236 查看
如何给应用增加分享功能,怎样将应用加入系统的分享选择列表?

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>

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

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

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

//cacheDir是你所要共享的文件对象所在的目录

//你可以用自己的文件对象覆盖File f

File cacheDir = new File(android.os.Environment.getExternalStorageDirectory(), getString(getApplicationInfo().labelRes));

File f = new File(cacheDir, "image_name.jpg");

Intent intent = new Intent(Intent.ACTION_SEND);

intent.setType("image/jpeg");

intent.putExtra(Intent.EXTRA_TEXT, "Email body over here");

intent.putExtra(Intent.EXTRA_SUBJECT, "Email subject over here");

intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));

startActivity(Intent.createChooser(intent, "Share via:"));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: