-2
多くの頭痛を払うために、この機能をアプリに追加する方法があります。キャッシュを使用してwhatsappで画像とテキストをインテントで共有
多くの頭痛を払うために、この機能をアプリに追加する方法があります。キャッシュを使用してwhatsappで画像とテキストをインテントで共有
私はこの問題に問題がありました。解決策を見つけるのに数時間かかるものの、その後はうまくいくはずです。コードは、フォルダを作成し、あなたのAndroidManifest.xml
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.share"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
にこのコードを挿入し
Picasso.with(context)
.load("http://...")
.into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
try {
File myDir = new File(getCacheDir() + "/pictureToShare.jpg");
FileOutputStream out = new FileOutputStream(myDir);
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, out);
out.flush();
out.close();
} catch(Exception e){
// some action
}
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
}
);
File requestFile = new File(getCacheDir() + "/pictureToShare.jpg");
Uri imageUri = FileProvider.getUriForFile(YourActivity.this,
getPackageName() + ".share", requestFile);
Intent share = new Intent(Intent.ACTION_SEND);
share.setPackage("com.whatsapp");
share.setType("image/jpg");
share.putExtra(Intent.EXTRA_TEXT,"Your text"); //to share text
share.putExtra(Intent.EXTRA_STREAM, imageUri); //to share image
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
try {
startActivity(share);
} catch (android.content.ActivityNotFoundException ex) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.whatsapp")));
}
あなたの活動に
(あなたは、オープンソースのピカソライブラリを必要とします) "res"フォルダに "xml"という名前を付けて、そこに "provider_paths"という名前のxml-resource-file provider_paths.xmlに次の行を書きます。
<paths>
<cache-path name="name" path="." />
</paths>