画像を表示するアプリケーションを開発しています。アプリケーションには、画像を添付ファイルとして電子メールで送信するオプションがあります。画像を添付ファイルとしてメールで送信するには、画像をSDカードに保存する必要があります。
最初にSDカードに書き込まずに画像を添付ファイルとして電子メールで送信することはできますか?
画像を表示するアプリケーションを開発しています。アプリケーションには、画像を添付ファイルとして電子メールで送信するオプションがあります。画像を添付ファイルとしてメールで送信するには、画像をSDカードに保存する必要があります。
最初にSDカードに書き込まずに画像を添付ファイルとして電子メールで送信することはできますか?
画像のContentProviderを作成する必要があります
@sivarajたとえば、画像を電話のどこかに(プライベートフォルダにも)保存する場合、openFileメソッドにまったく保存したくない場合は、画像を変更するだけです。マニフェストにプロバイダーを適切な権限属性で登録してください。これで完了です。
public class ImageProvider extends ContentProvider {
private static final String URI_PREFIX = "content://com.android.myproject.anythingyouwant";
public static String constructUri(String url) {
Uri uri = Uri.parse(url);
return uri.isAbsolute() ? url : URI_PREFIX + url;
}
@Override
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
File file = new File(uri.getPath());
ParcelFileDescriptor parcel = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
return parcel;
}
@Override
public boolean onCreate() {
return true;
}
@Override
public int delete(Uri uri, String s, String[] as) {
throw new UnsupportedOperationException("Not supported by this provider");
}
@Override
public String getType(Uri uri) {
throw new UnsupportedOperationException("Not supported by this provider");
}
@Override
public Uri insert(Uri uri, ContentValues contentvalues) {
throw new UnsupportedOperationException("Not supported by this provider");
}
@Override
public Cursor query(Uri uri, String[] as, String s, String[] as1, String s1) {
throw new UnsupportedOperationException("Not supported by this provider");
}
@Override
public int update(Uri uri, ContentValues contentvalues, String s, String[] as) {
throw new UnsupportedOperationException("Not supported by this provider");
}
}
AFAIK、SDCardの拳に書くことがそれを行う唯一の方法です...そして、メールクライアントがファイルを読み取ることができなければならないのでそれは必要です。そのため、公共の場所に保管する必要があります。