#android
#Android
Вопрос:
Я пытаюсь поделиться видео из моего приложения в Instagram Stories или ленту, но оно запускается для ленты, а не для историй. Почему один и тот же код успешно выполняется для ленты, а не для историй.
Мои коды для обмена:
protected void shareInsta()
{
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
Uri screenshotUri = Uri.parse(String.valueOf(dest));
sharingIntent.setType("video/*");
sharingIntent.setPackage("com.instagram.android");
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
startActivity(Intent.createChooser(sharingIntent, "Share Video "));
}
Комментарии:
1. developers.facebook.com/docs/instagram/sharing-to-stories
2. Я уже делаю это, но это не работает, потому что, когда я пытаюсь Uri.parse(путь к файлу); он не преобразуется в uri:(
Ответ №1:
Попробуйте это, это может помочь вам
public static void shareVideo(Activity activity, String sharedImgPath, String pkgName) {
ArrayList<Uri> list = new ArrayList<>();
list.add(FileProvider.getUriForFile(activity, BuildConfig.APPLICATION_ID ".provider", new File(sharedImgPath.replace("file://", "").trim())));
Intent intentImage = new Intent(Intent.ACTION_SEND);
intentImage.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intentImage.putExtra(Intent.EXTRA_STREAM, FileProvider.getUriForFile(activity, BuildConfig.APPLICATION_ID ".provider", new File(sharedImgPath.replace("file://", "").trim())));
intentImage.setType("video/*");
if (pkgName.length() > 0) {
intentImage.setPackage(pkgName);
}
activity.startActivity(intentImage);
}
Как вызвать
shareVideo(context,"file://storage/abc/video.mp4","com.instagram.android");
Комментарии:
1. Спасибо, я попробую это
2. Вызвано: java.lang. Исключение NullPointerException: попытка вызвать виртуальный метод ‘android.content.pm.PackageManager android.content. Context.getPackageManager()’ по нулевой ссылке на объект
3. вы передаете правильный контекст?
4. если вы вызываете функцию из Activity, то передайте это, если вы вызываете функцию из fragment, то передайте getActivity().
5. Проверьте, что вы импортируете BuildConfig. оно должно исходить от вашего имени пакета. предположим, что имя вашего пакета com.abc.xyz, импорт должен осуществляться из import com.abc.xyz.BuildConfig;