【发布时间】:2017-04-22 06:17:40
【问题描述】:
我有一个使用相机的简单模块。当我使用默认相机(内置相机)时,它会根据需要显示缩略图。无论如何,当我通过 packageManager 使用 3rd 方相机应用程序(如 candycamera、retrica 等)拍照时,它不会显示缩略图。它有时会崩溃。 我已经在我的限制范围内尝试了所有代码来检查缩略图是否正在显示,但找不到任何相关的解决方案 帮助表示赞赏 谢谢
在 onCreate() 中
private void dispatchPicIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE );
}
}
在onActivityResult()中
字符串时间戳 = 新的 SimpleDateFormat( "yyyyMMdd_HHmmss").format(new Date());
pictureFile = new File(Environment
.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES)
.getAbsolutePath()
+ File.separator + "IMG_" + timeStamp);
try {
FileOutputStream fos = new FileOutputStream(
pictureFile);
Bundle extras = data.getExtras();
Bitmap bm = (Bitmap) extras.get("data");
bm.compress(Bitmap.CompressFormat.JPEG, 90, fos);
fos.close();
filePath = pictureFile.getAbsolutePath();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
【问题讨论】:
-
发布您的代码。发布堆栈跟踪。指出哪里出了问题。
-
每个相机应用都可以随心所欲。您应该准备好不会收到您期望的数据。但是您的应用永远不会崩溃,因为您可以使代码变得健壮。
-
我刚做了。我可以使用开源库,但我想知道这背后的逻辑