Возврат изображения в WhatsApp
мы пытались создать приложение, которое будет отображаться в качестве дополнительного источника изображения, когда пользователь пытается поделиться изображением с помощью WhatsApp. До сих пор мне удавалось заставить мое приложение отображаться в средстве выбора служб, которое WhatsApp запускает с использованием фильтров намерений, но я не могу заставить изображение правильно вернуться в WhatsApp. Я публикую свой код ниже:
public void returnImage(View v){
//Bitmap img;
//Bundle selectedImage = new Bundle();
Uri imageURI;
Intent shareIntent = new Intent();
switch(v.getId()){
case R.id.eric1 :
imageURI = saveToCache(R.drawable.cartman1);
shareIntent.putExtra(Intent.EXTRA_STREAM, imageURI);
shareIntent.setType("image/png");
setResult(RESULT_OK, shareIntent);
Utils.makeToast("Selected",this);
System.out.println("--------------------------------");
System.out.println(imageURI.toString());
finish();
}
}
private Uri saveToCache(int resID) {
// TODO Auto-generated method stub
Bitmap image = BitmapFactory.decodeResource(getResources(), resID);
File imageFile;
Date d = new Date();
String imgName = ((Long.toString(d.getTime())).subSequence(1,
9)).toString();
String state = Environment.getExternalStorageState();
printDebug(state);
if (Environment.MEDIA_MOUNTED.equals(state)) {
File file = getExternalFilesDir(null);
if (file != null) {
try {
//String root = file.getAbsolutePath();
imageFile = new File(file, imgName+".png");
printDebug(imageFile.getAbsolutePath());
FileOutputStream stream = new FileOutputStream(imageFile);
boolean complete = image.compress(Bitmap.CompressFormat.PNG, 100,
stream);
if (!complete) {
Log.d("tag", "image not saved");
}
Log.d("tag", "image saved");
// Tell the media scanner about the new file so that it is
// immediately available to the user.
MediaScannerConnection.scanFile(this,
new String[] { imageFile.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
return Uri.parse(imageFile.getAbsolutePath());
} catch (IOException e) {
Log.d("tag", "Can't save image", e);
}
}
}
return null;
}
Приложение открывается, и я выбираю изображение, но WhatsApp сообщает, что изображение не может быть передано. LogCat не показывает ошибок или предупреждений.
Я читаю ресурсIntent-Filter для WhatsApp -> поделиться изображением
но нет никакого упоминания о том, как или что было возвращено приложением, поэтому ям в полной растерянности здесь.