Моего кода ниже -Не может передавать изображения на WeChat и линию с использованием ACTION_SEND намерения
Intent prototype = new Intent(Intent.ACTION_SEND);
prototype.setData(uri); // uri is of the image file
prototype.setType(image/*);
prototype.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
prototype.putExtra(Intent.EXTRA_STREAM, uri);
List<ResolveInfo> resInfo = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
if (!resInfo.isEmpty())
{
for (ResolveInfo resolveInfo : resInfo)
{
if (resolveInfo.activityInfo == null)
{
continue;
}
// Retrieve the package name and class name to populate the chooser intent
Intent intent = (Intent) prototype.clone();
String packageName = resolveInfo.activityInfo.packageName;
intent.setPackage(packageName);
intent.setClassName(packageName, resolveInfo.activityInfo.name);
targetedIntents.add(intent);
}}
Intent chooserIntent = Intent.createChooser(topIntents.remove(targetedIntents.size() - 1), chooserTitle);
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedIntents.toArray(new Parcelable[] {}));
Когда я выбираю WeChat и приложение Line из Chooser, ничего не происходит. Приложение Line просто отображает сообщение об ошибке, которое невозможно передать. WeChat не дает никаких сообщений. Совместное использование отлично работает на Whatsapp и Hangouts с использованием моего кода.
Мы можем обмениваться изображениями с WeChat и Line из галереи. Как это работает? Разве это не намерение отправки?
«Мой код такой, как показано ниже» - нет, это не так, поскольку этот код не будет компилироваться. "Как это работает?" - 'ACTION_SEND'. Что такое ваш 'Uri'? Поскольку вы используете 'FLAG_GRANT_READ_URI_PERMISSION', используете ли вы' FileProvider' или реализуете собственный потоковый контент ContentProvider? – CommonsWare
Привет @CommonsWare, я реализую свой собственный контент-провайдер. Поскольку мой код является собственностью, я не могу публиковать его целиком. Uri имеет вид формы: // .... и изображение хранится в каталоге моего приложения. Странная часть заключается в том, что мой код работает в Hangouts, Whatsapp, FB messenger, но не работает для WeChat и Line. Я также использую намерение ACTION_SEND в моем коде, но в чем причина того, что обмен не работает для меня, тогда как он работает для Gallery. – user1154309
Вы можете попробовать смешать в [my 'LegacyCompatCursorWrapper'] (https://github.com/commonsguy/cwac-provider#usage-legacycompatcursorwrapper) свой метод' query() 'в вашем' ContentProvider' или иначе попытаться реализовать [этот шаблон] (http://stackoverflow.com/a/25020642/115145) для работы с некоторыми плохо написанными потоковыми клиентами ContentProvider. – CommonsWare