在我的应用程序中,我将 WAV 文件作为电子邮件附件发送。在显示电子邮件选择器时,Indent.createChooser 意图将列出电子邮件、gmail、facebook、skype、蓝牙和其他不必要的选项。我只想显示电子邮件和 Gmail 选项。我不知道该怎么做?在您提出可能重复的问题之前,我看到了以下链接,但它对我没有帮助。
如上述链接中所述,我已经尝试过sendIntent.setType("audio/rfc822");
。再次显示相同。
我的代码示例:
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "xxxxxxxxxxxx");
sendIntent.putExtra(Intent.EXTRA_STREAM,Uri.parse("file://" + f.getAbsolutePath()));
sendIntent.setType("audio/wav");
startActivity(Intent.createChooser(sendIntent, "Email file"));
更新的问题:
我已经实现了一个示例,其中列出了已安装的应用程序,然后单击列表视图上的项目我将启动 Gmail / 电子邮件应用程序: 上面写着“没有应用程序可以执行此操作”。
要在列表视图中列出应用程序:
-----------------
List<PackageInfo> packs = packageManager.getInstalledPackages(0);
for(int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
ApplicationInfo a = p.applicationInfo;
if ((includeSysApps) && ((a.flags & ApplicationInfo.FLAG_SYSTEM) == 1)) {
continue;
}
App app = new App();
app.setTitle(p.applicationInfo.loadLabel(packageManager).toString());
app.setPackageName(p.packageName);
app.setVersionName(p.versionName);
app.setVersionCode(p.versionCode);
app.setInstallDir(p.applicationInfo.sourceDir);
app.setInstallSize(calculateSize(app.getInstallDir()));
CharSequence description = p.applicationInfo.loadDescription(packageManager);
app.setDescription(description != null ? description.toString() : "");
apps.add(app);
-----------
在 onclick 项目事件中是:
Intent sendIntent = new Intent(getPackageManager().getLaunchIntentForPackage(app.getPackageName()));
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "xxxxxxxxxxxx");
sendIntent.putExtra(Intent.EXTRA_STREAM,Uri.parse("file://" + Environment.getExternalStorageDirectory().getPath()+"/Music/SalsaFav.mp3"));
sendIntent.setType("audio/wav");
startActivity(Intent.createChooser(sendIntent, "Email file"));
请帮我。