因此,我正在编写一个意图,该意图应该启动图库以查看通过其 Uri 传递到意图中的图像。这段代码工作正常,完全符合我的要求:

private Intent makeGalleryIntent(String pathToImageFile) {
    Intent mGalleryIntent = new Intent(Intent.ACTION_VIEW);
    mGalleryIntent.setDataAndType(Uri.parse("file://" + pathToImageFile), "image/*");
    return mGalleryIntent;
}

但是当我尝试使用它时(只是在我学习的过程中尝试不同的东西),这段代码要么在模拟器上崩溃,因为它无法启动相机,要么只是在我的物理设备上拉出我的画廊:
private Intent makeGalleryIntent(String pathToImageFile) {
    Intent mGalleryIntent = new Intent(Intent.ACTION_VIEW);
    mGalleryIntent.setData(Uri.parse("file://" + pathToImageFile));
    mGalleryIntent.setType("image/*");
    return mGalleryIntent;
}

他们看起来都应该做同样的事情。另外,有没有一种方法可以仅使用 Intent 构造函数正确设置所有这些?

最佳答案

来自文档:Intent Documentation

我从来没有真正得到过为什么他们会互相抵消的答案......如果你知道为什么我喜欢听它!

关于android-intent - Android Intents - SetDataAndType 与 setData 和 setType 之间的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29507843/

10-10 10:04