Android 分享功能

private List<KlAppInfo> getShareAppList() {
		List<KlAppInfo> shareAppInfos = new ArrayList<KlAppInfo>();
		PackageManager packageManager = getPackageManager();
		List<ResolveInfo> resolveInfos = getShareApps(this);
		if (null == resolveInfos) {
			return null;
		} else {
			for (ResolveInfo resolveInfo : resolveInfos) {
				KlAppInfo appInfo = new KlAppInfo();
				String appPkgName = resolveInfo.activityInfo.packageName;
				if (appPkgName.equals(mms) || appPkgName.equals(email) || appPkgName.equals(sina) || appPkgName.equals(tencentWB) || appPkgName.equals(tencentQQ) || appPkgName.equals(tencentWX)) {
					appInfo.setAppPkgName(resolveInfo.activityInfo.packageName);
					//System.out.println("packageName==" + resolveInfo.activityInfo.packageName);
					appInfo.setAppLauncherClassName(resolveInfo.activityInfo.name);
					appInfo.setAppName(resolveInfo.loadLabel(packageManager).toString());
					appInfo.setAppIcon(resolveInfo.loadIcon(packageManager));
					shareAppInfos.add(appInfo);
				}
			}
		}
		return shareAppInfos;
	}
private void CreateShare(String title, String content, Activity activity, KlAppInfo appInfo) {
		try {
			Intent shareIntent = new Intent(Intent.ACTION_SEND);
			shareIntent.setComponent(new ComponentName(appInfo.getAppPkgName(), appInfo.getAppLauncherClassName()));
			shareIntent.setType("text/plain");
			// shareIntent.setType("image/*");
			shareIntent.putExtra(Intent.EXTRA_TITLE, title);
			shareIntent.putExtra(Intent.EXTRA_TEXT, content);
			shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
			activity.startActivity(shareIntent);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	private List<ResolveInfo> getShareApps(Context context) {
		List<ResolveInfo> mApps = new ArrayList<ResolveInfo>();
		Intent intent = new Intent(Intent.ACTION_SEND, null);
		intent.addCategory(Intent.CATEGORY_DEFAULT);
		intent.setType("text/plain");
		// intent.setType("*/*");
		PackageManager pManager = context.getPackageManager();
		mApps = pManager.queryIntentActivities(intent, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
		return mApps;
	}
package com.kxe.ca.activity;


import android.graphics.drawable.Drawable;


public class KlAppInfo {


	private String AppPkgName;
	private String AppLauncherClassName;
	private String AppName;
	private Drawable AppIcon;


	public KlAppInfo() {
		super();
	}


	public KlAppInfo(String appPkgName, String appLauncherClassName) {
		super();
		AppPkgName = appPkgName;
		AppLauncherClassName = appLauncherClassName;
	}


	public String getAppPkgName() {
		return AppPkgName;
	}


	public void setAppPkgName(String appPkgName) {
		AppPkgName = appPkgName;
	}


	public String getAppLauncherClassName() {
		return AppLauncherClassName;
	}


	public void setAppLauncherClassName(String appLauncherClassName) {
		AppLauncherClassName = appLauncherClassName;
	}


	public String getAppName() {
		return AppName;
	}


	public void setAppName(String appName) {
		AppName = appName;
	}


	public Drawable getAppIcon() {
		return AppIcon;
	}


	public void setAppIcon(Drawable appIcon) {
		AppIcon = appIcon;
	}


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Studio提供了多种分享功能,可以让用户将应用程序中的内容分享到其他应用程序或社交媒体平台上。其中包括: 1. Intent分享:使用Intent来启动其他应用程序,例如分享到Facebook、Twitter等社交媒体平台。 2. 分享对话框:使用Android系统提供的分享对话框,让用户选择要分享的应用程序。 3. 自定义分享:开发者可以自定义分享功能,例如创建自己的分享对话框或分享按钮。 总之,Android Studio提供了丰富的分享功能,可以帮助开发者轻松实现应用程序的分享功能。 ### 回答2: Android Studio 是一个开发 Android 应用程序的集成开发环境,它提供了各种各样的功能来辅助开发人员完成他们的工作。其中之一就是分享功能,它允许用户通过他们的应用程序与其他人共享内容或信息。 在 Android Studio 中实现分享功能需要以下步骤: 1. 在 AndroidManifest.xml 文件中定义一个 Intent-filter,并将其设置为 ACTION_SEND。此操作将使你的应用程序能够与其他应用程序一起处理“共享”操作。 2. 创建您要分享的内容。内容可以是文本、图像、视频或其他任何类型的数据。 3. 使用 Intent 类创建一个包含要分享内容的 Intent,并设置 Intent 的类型、标题和文本。 4. 启动一个 IntentChooser,允许用户选择他们要分享的应用程序。 下面是一个示例代码: ``` Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(Intent.EXTRA_TEXT, "这是一段分享的文本"); startActivity(Intent.createChooser(shareIntent, "分享到")); ``` 在这个例子中,我们创建了一个包含文本“这是一段分享的文本”的 Intent,并将其设置为 text/plain 类型。当启动分享操作时,用户将会看到一个名为“分享到”的对话框,其中列出了所有可用于处理 Intent 的应用程序。 可以通过将 Intent 的类型更改为图像、视频或其他类型的数据来共享不同类型的内容。你可以根据你的应用程序的要求自定义 Intent,包括设置内容、标题、类别、标志等。 总结来说,Android Studio 提供了非常方便的分享功能,这对开发人员来说是一个很好的特性。 通过使用 Android Studio,开发人员可以轻松地实现这个功能来提高应用程序的用户体验。 ### 回答3: Android Studio是一款用于开发Android应用程序的集成开发环境。在Android Studio中,集成了丰富的工具和插件,方便开发者进行开发、测试和调试。其中包括了分享功能,允许开发者将应用程序分享到其他应用程序中,从而方便用户进行使用和分享Android Studio提供了两种不同的分享方式:系统分享和自定义分享。其中,系统分享是指将应用程序所支持的数据类型(如文本、图片等)直接分享到系统中已经安装的其他应用程序中。自定义分享则是开发人员根据自己的需求和应用场景,自定义分享功能和实现方法。 在使用系统分享功能时,开发者需要借助Android系统提供的Intent机制来实现。具体来说,开发者需要构建一个包含要分享的数据的Intent对象,并通过startActivity()方法来启动该Intent。系统会根据Intent中指定的数据类型匹配已经安装的其他应用程序,并将数据传递给匹配的应用程序。 自定义分享的实现方法则需要结合Android系统提供的ContentProvider机制。开发者需要先定义一个ContentProvider,然后将要分享的数据存储到ContentProvider中。在分享时,开发者可以构建一个Intent对象,并指定Intent的Action为ACTION_SEND,Type为ContentProvider中存储的数据类型,然后将ContentProvider的URI作为Intent的Extra传递给其他应用程序。这样,其他应用程序就可以通过ContentResolver来获取ContentProvider中存储的数据,并对其进行使用或分享。 总之,Android Studio的分享功能为开发者提供了多种实现方式,可以根据应用场景和需求灵活选择。同时,开发者也可以结合系统提供的机制和工具来实现自定义的分享功能,从而提升应用程序的用户体验和分享效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值