画像とテキストを共有する[共有]ボタンがあります。私のACTION_SENDはAPI 25以上で動作していますが、以前のAPIを使いこなすのはなぜですか?
Nougat(API 25)とOreo(API 26)では、完全に機能します。しかし、古いバージョンの場合は期待通りに動作しません。
マシュマロ(API 23):イメージはきちんと表示されますが、本文は挿入されません。 Lollipop(API 22):ポップアップエラーで[共有]ボタンを押したときにクラッシュします。「残念ながら、メッセージングは停止しました。この場合、LOGCATはエラーを表示していません。ここで
は私の共有ボタンのコードです:ここで
if (id == R.id.action_shareWine) {
Intent intentShare = new Intent(Intent.ACTION_SEND);
intentShare.putExtra(intentShare.EXTRA_STREAM, imageURI);
intentShare.setType("image/*");
intentShare.putExtra(Intent.EXTRA_TEXT, "body of text goes here");
if (intentShare.resolveActivity(getPackageManager()) != null) {
startActivity(intentShare);
}
return true;
}
が起こっていただきました!の視覚的なアイデアを与えるための画像です:
誰もが起こっていることができるものの任意のアイデアを持っていますここに?ここでUPDATE 1
はロリポップエミュレータのクラッシュログです:カーソルがちょうどイメージをロードしているので、それが起こっている理由は、私はよく分からない
FATAL EXCEPTION: Mms-1
Process: com.android.mms, PID: 7570
java.lang.IllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
その同じアクティビティのImageViewで正常に動作します。 ACTION_SEND
Intent
上
'imageURI'の値は何ですか?また、それはあなたのイメージなので、MIMEタイプが何であるか知っていますが、なぜワイルドカードを使用していますか? – CommonsWare
'imageURI = Uri.parse(cursor.getColumnIndexOrThrow(WineContract.WineEntry.COLUMN_WINE_IMAGE))));同じコードがアクティビティでイメージビューを設定できるので、カーソルが正しいURIを持っていることがわかります。 – andrdoiddev
前のコメントと同じように、 "image/*"はすべての製造元とデバイスでサポートされているとは思えません。あなたは正確な鉱山のタイプ "image/jpeg"または "image/png"を指定する必要があります – AlonsoFloo