我设法构建了一个简单但有效的自定义相机应用程序。
到目前为止,我可以直接启动它并让它拍照。
我还添加了适当的intent-filters,让它作为可用的应用程序发布,以回复包含一行代码的另一个应用程序的intent调用,如下所示:Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
问题是:如何对我的相机应用进行编码以将图像发送回通过URI进行保存的外部应用?
目前我有一种方法可以检测相机是直接启动还是调用以回复意图过滤器:此方法为isImageCaptureIntent
(正常工作)。
我想我必须在onPictureTaken
的{{1}}方法中写一些内容,但是一旦我尝试写入OutputStrems,所有尝试都会在NullPointerExceptions中停止。
请注意PictureCallback
已填充调用应用程序从此代码行提供的正确URI:mSaveUri
以下是方法:
mSaveUri = (Uri) myExtras.getParcelable( MediaStore.EXTRA_OUTPUT );
答案 0 :(得分:0)
这个问题也有类似的问题。 一篇帖子说这是htc设备上的一个问题。这里:
在任何情况下,我建议发送捕获图像的请求,并接收其路径,并使用MODE_WORLD_READABLE作为文件,或使用外部存储路径。
答案 1 :(得分:0)
mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length, opt);
Matrix mtrxFreeze = new Matrix();
mtrxFreeze.postRotate(90);
mBitmap = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(),
mBitmap.getHeight(), mtrxFreeze, true);