gpt4 book ai didi

android - 当 imageuri 作为额外传递时,Espresso 测试相机 Intent

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:39 26 4
gpt4 key购买 nike

我需要通过在 intent extra 中提供的路径上创建一个图像文件来 stub 相机 intent。Espresso 只能响应 activityresult。我在哪里可以执行操作以从 intent extra 传递的路径创建文件。

启动相机代码

File destination = new File(Environment.getExternalStorageDirectory(), "app_name" + System.currentTimeMillis() + ".jpg");



<p>imageUri = FileProvider.getUriForFile(getApplicationContext(), getApplicationContext().getPackageName() + ".fileprovider", destination);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);</p>

startActivityForResult(intent, AppConstants.REQUEST_CODE_CAMERA);

在测试中 stub Intent 的代码

Instrumentation.ActivityResult result = new Instrumentation.ActivityResult(Activity.RESULT_OK, null);
intending(hasAction(MediaStore.ACTION_IMAGE_CAPTURE)).respondWith(result);

最佳答案

Ismael 的回答很完美。对于那些在 Java 中寻找解决方案的人,这里是。

intending(hasAction(MediaStore.ACTION_IMAGE_CAPTURE)).respondWith(
new Instrumentation.ActivityResult(Activity.RESULT_OK, null));

IntentCallback intentCallback = new IntentCallback() {
@Override
public void onIntentSent(Intent intent) {
if (intent.getAction().equals("android.media.action.IMAGE_CAPTURE")) {
try {
Uri imageUri = intent.getParcelableExtra(MediaStore.EXTRA_OUTPUT);
Context context = InstrumentationRegistry.getTargetContext();
Bitmap icon = BitmapFactory.decodeResource(
context.getResources(),
R.mipmap.ic_launcher);
OutputStream out = getTargetContext().getContentResolver().openOutputStream(imageUri);
icon.compress(Bitmap.CompressFormat.JPEG, 100, out);
out.flush();
out.close();
} catch (IOException e) {
GenericUtility.handleException(e);
}
}
}
};
IntentMonitorRegistry.getInstance().addIntentCallback(intentCallback);

//Perform action here
onView(withId(R.id.tv_take_photo)).perform(click());

关于android - 当 imageuri 作为额外传递时,Espresso 测试相机 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44114008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com