无法在模拟器中使用相机 - SD 卡不可用
Can't use camera in the emulator - SD card unavailable
当我尝试从我的模拟器 运行 内置相机应用程序时,我收到消息:'Cannot take pictures without SD card inserted'。
我正在使用 Emulator Nexus 5 API 21 x86。我检查了 AVD 管理器,模拟器的 SD 卡设置为可以使用: .android\avd\Nexus_5_API_21_x86.avd\sdcard.img ,所以我想这意味着它已启用
我不明白:
1. 如果我的虚拟 SD 卡设置正确,为什么我会收到此消息
2. 为什么相机必须连接到SD卡?在我个人的真实 android 设备中,即使我根本没有 SD 卡,我也会使用相机。它只是将照片存储到设备的内部存储器中。
3. 在我开发的应用程序中,作为另一种可能的解决方案,我正在调用相机并提供 内部存储 的文件路径,但我仍然得到关于 SD 卡的相同消息。
我的代码:
int REQUEST_TAKE_PHOTO = 1;
public void takePicture(View view){
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Ensure that there's a camera activity to handle the intent
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// Create the File where the photo should go
File photoFile = null;
try {
photoFile = File.createTempFile(
"blabla", /* prefix */
".jpg", /* suffix */
getFilesDir() /* directory */
);
} catch (IOException ex) {
// Error occurred while creating the File
throw new RuntimeException("Couldn't take picture");
}
// Continue only if the File was successfully created
if (photoFile != null) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photoFile));
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
}
相机可能会将图像(或缓存图像)保存在 SD 卡中。如果你想测试 Camera 是否需要 SDcard(通常不需要),请删除 SDCard 选项。否则,我认为您可以尝试通过以下方式创建新的 SD 卡:
- 按
Or create new image
- 为新 SD 卡输入 150MB
- 好的,然后重试。
当我尝试从我的模拟器 运行 内置相机应用程序时,我收到消息:'Cannot take pictures without SD card inserted'。
我正在使用 Emulator Nexus 5 API 21 x86。我检查了 AVD 管理器,模拟器的 SD 卡设置为可以使用: .android\avd\Nexus_5_API_21_x86.avd\sdcard.img ,所以我想这意味着它已启用
我不明白:
1. 如果我的虚拟 SD 卡设置正确,为什么我会收到此消息
3. 在我开发的应用程序中,作为另一种可能的解决方案,我正在调用相机并提供 内部存储 的文件路径,但我仍然得到关于 SD 卡的相同消息。
我的代码:
int REQUEST_TAKE_PHOTO = 1;
public void takePicture(View view){
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Ensure that there's a camera activity to handle the intent
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// Create the File where the photo should go
File photoFile = null;
try {
photoFile = File.createTempFile(
"blabla", /* prefix */
".jpg", /* suffix */
getFilesDir() /* directory */
);
} catch (IOException ex) {
// Error occurred while creating the File
throw new RuntimeException("Couldn't take picture");
}
// Continue only if the File was successfully created
if (photoFile != null) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photoFile));
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
}
相机可能会将图像(或缓存图像)保存在 SD 卡中。如果你想测试 Camera 是否需要 SDcard(通常不需要),请删除 SDCard 选项。否则,我认为您可以尝试通过以下方式创建新的 SD 卡:
- 按
Or create new image
- 为新 SD 卡输入 150MB
- 好的,然后重试。