Проблема
У меня есть изображение внутри моего приложения, и я делюсь им с любым другим приложением, которое может обрабатывать обмен изображениями, и функция работает perectlty.
Я пишу тестовый интерфейс Espresso, чтобы перехватить намерение и убедиться, что он имеет правильное действие и дополнительные функции, но не может заставить его работать.
Код
Вот код при создании намерения:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType(MediaType.PNG.toString());
startActivity(Intent.createChooser(intent, "send");
, и вот моя попытка сопоставить намерение в моем тесте, но не удается найти совпадение:
Intents.init();
launchActivity(MyFragment.newIntent(getTargetContext());
Matcher<Intent> expectedIntent = allOf(
hasAction(Intent.ACTION_CHOOSER),
hasExtra(
Intent.ACTION_SEND,
hasExtra(Intent.EXTRA_STREAM, EXPECTED_SHARE_URI) // Expected URI has been copied from the extras 'uriString' value when debugging
)
);
intending(expectedIntent).respondWith(new Instrumentation.ActivityResult(0, null));
MyScreen.clickShareButton(); // performs click on the share button
intended(expectedIntent);
Intents.release();
Ошибка
IntentMatcher: (has action: is "android.intent.action.CHOOSER" and has extras: has bundle with: key: is "android.intent.extra.STREAM" value: is "[my uri appears here]")
Дополнительная информация
При отладке созданное намерение приводит к намерению с действием "android .intent.action.CHOOSER "и имеет дополнительный тип Intent с действием" android .intent.action.SEND "и типом" image / png ", а в свою очередь имеет дополнительный HierarchicalUri с uriString .
Резюме
Кто-нибудь знает, что я делаю неправильно? Я не могу найти способ собрать все это вместе и создать подходящее средство для этого намерения. Любая помощь будет принята с благодарностью!