0

Я использую универсальный загрузчик изображений и смог передать образы из моего приложения в WhatsApp, используя этот кодSharing изображение на WhatsApp сломана после последнего обновления 22 мая

public static void shareImage(Context context, File pictureFile, String text) { 
    Uri imageUri = Uri.parse(pictureFile.getAbsolutePath()); 
    Intent shareIntent = new Intent(); 
    shareIntent.setAction(Intent.ACTION_SEND); 
    shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, text); 

    shareIntent.setType("image/*"); 
    context.startActivity(Intent.createChooser(shareIntent, "Share")); 
} 

Но с недавним обновлением WhatsApp мая 22-й. Я получаю 'Формат файла не поддерживается' toast.

enter image description here

+0

Так вы пробовали изменения форматов файлов? – jonrsharpe

+0

В основном мое приложение содержит jpg и png. Этот же код использовался раньше. –

+0

Да, и теперь они, видимо, изменили поддерживаемые форматы, поэтому * вам тоже нужно изменить *. – jonrsharpe

ответ

0

Ранее совместное изображение будет работать с

shareIntent.setType("image/*"); 

, но в последнем обновлении необходимо внести следующие изменения для совместного использования изображения на WhatsApp

public class ImageFileNameGenerator implements FileNameGenerator { 
    @Override 
    public String generate(String imageUri) { 
     String extension = imageUri.substring(imageUri.lastIndexOf(".")); 
     return String.valueOf(imageUri.hashCode() + extension); 
    } 
} 

обновление конфигурации

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()) 
     .defaultDisplayImageOptions(defaultOptions) 
     .diskCacheFileNameGenerator(new ImageFileNameGenerator()) 
     .build(); 
ImageLoader.getInstance().init(config); 

изображение код обмена

public static void shareImage(Context context, File pictureFile, String text) { 
    String imagePath = pictureFile.getAbsolutePath(); 

    Uri imageUri = Uri.parse(imagePath); 
    Intent shareIntent = new Intent(); 
    shareIntent.setAction(Intent.ACTION_SEND); 
    shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, text); 

    String imageFileExtension = imagePath.substring(imagePath.lastIndexOf(".")); 

    shareIntent.setType("image/" + imageFileExtension); 
    shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
    context.startActivity(Intent.createChooser(shareIntent, "Share")); 
} 
Смежные вопросы