android - 通过分享意图分享图像到 Whatsapp
问题描述
这是我通过它将我的图像或视频从适配器共享到 WhatsApp 的代码,它工作正常,但现在只显示吐司没有安装什么应用程序代码中是否有任何问题我遗漏了什么?
public void shareWhatsapp(String type, String path, String package_name) {
Uri uri = FileProvider.getUriForFile(mFragment, BuildConfig.APPLICATION_ID + ".provider", new File(path));
PackageManager pm = mFragment.getPackageManager();
try {
PackageInfo info = pm.getPackageInfo(package_name, PackageManager.GET_META_DATA);
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
sharingIntent.setType(type);
sharingIntent.putExtra(Intent.EXTRA_STREAM, uri);
sharingIntent.setPackage(package_name);
mFragment.startActivity(Intent.createChooser(sharingIntent, "Share via"));
} catch (PackageManager.NameNotFoundException e) {
Toast.makeText(mFragment, "WhatsApp not Installed", Toast.LENGTH_SHORT)
.show();
}
}
这是听众
holder.repostWhatsapp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final ModelStatus curVideo = getItem(position);
if (curVideo.getFull_path().endsWith(".jpg")) {
shareWhatsapp("image/jpg", curVideo.getFull_path(), "com.whatsapp");
} else if (curVideo.getFull_path().endsWith(".mp4")) {
shareWhatsapp("video/mp4", curVideo.getFull_path(), "com.whatsapp");
}
}
});
解决方案
使用以下代码将图像或视频分享到 whatsapp
holder.repostWhatsapp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = FileProvider.getUriForFile(PdfRendererActivity.this,
PdfRendererActivity.this.getPackageName() + ".provider", outputFile);
if (curVideo.getFull_path().endsWith(".jpg")) {
shareWhatsapp("image/jpg", uri);
} else if (curVideo.getFull_path().endsWith(".mp4")) {
shareWhatsapp("video/mp4", uri);
}
}
});
分享WhatsApp
void shareWhatsapp(String type, String uri)
{
Intent share = new Intent();
share.setAction(Intent.ACTION_SEND);
share.setType(type);
share.putExtra(Intent.EXTRA_STREAM, uri);
share.setPackage("com.whatsapp");
startActivity(share);
}
推荐阅读
- filenet - 为 Filenet 中的现有工作项引入新属性
- python - Pandas & Python:如何写入特定的 excel 行,而不替换其原始值
- c - 在 C 中关闭并重新打开 PDF
- scala - 如何使用scala将整数列表中的ApproxQuanitiles计算到Spark DataFrame列中
- java - maven依赖管理及传递依赖的版本变更
- tweepy - Tweepy 不返回转发推文的推文对象
- postgresql - Npgsql 能否与 Aurora PostgreSQL 一起正常工作
- dataframe - 如何在 pyspark 中获取结构化流数据帧的一行数据?
- automated-tests - 运行 Azure CLI 任务作为 Azure Devops YAML 管道的测试
- java - 带代理的 Http 客户端