Java 如何创建适用于所有android设备的通用摄像头操作
在我的应用程序中,我想使用相机拍摄图像并发送到服务器 当用户打开我的应用程序的摄像头部分时,我想向他显示他正在使用的设备的默认摄像头。目前,下面是我用来捕捉图像的两行代码Java 如何创建适用于所有android设备的通用摄像头操作,java,android,upload,camera,Java,Android,Upload,Camera,在我的应用程序中,我想使用相机拍摄图像并发送到服务器 当用户打开我的应用程序的摄像头部分时,我想向他显示他正在使用的设备的默认摄像头。目前,下面是我用来捕捉图像的两行代码 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, TAKE_RECEIPT); 当我在HTC设备上运行此代码时,在捕获图像后,它显示了带有“完成”和“重拍”按钮的图像预览。单击“完成”后,它
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_RECEIPT);
当我在HTC设备上运行此代码时,在捕获图像后,它显示了带有“完成”和“重拍”按钮的图像预览。单击“完成”后,它将移动到上一个活动
当我在moto设备中使用代码时,在捕获图像后,它显示了图像的预览,包括插入、重拍和取消。单击“完成”后,它将移动到上一个活动
这样,所有设备的性能都会有所不同。因此,当我单击任何设备的“完成”或“插入”或任何其他按钮时,我希望启动上载过程
如何进行此操作请帮助我……我不确定问题是否只是关于拍摄后如何上传图像。。但是,如果只是它,我将为您提供一个解决方案,在您从捕获意图返回到您的活动之后处理它 启动捕获意图时,可以指定保存图像的路径:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(), "image.jpg");
outputFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, TAKE_RECEIPT);
然后,您可以在onActivityResult中处理上载:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == TAKE_RECEIPT) {
if (resultCode == Activity.RESULT_OK) {
// user took a picture, upload it
// outputFileUri contains the uri to your file
// you should delete it when the upload completes
} else if (resultCode == Activity.RESULT_CANCELED) {
//user canceled - do nothing
}
}
}
您可以使用以下代码来解决您的问题
protected void startCameraActivity()
{
// TODO Auto-generated method stub
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult( intent, 0 );
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
switch( resultCode )
{
case 0:
break;
case -1:
onPhotoTaken();
break;
}
}
protected void onPhotoTaken()
{
///write code here what you want to done after capture the image using device camera
}
@Override
protected void onRestoreInstanceState( Bundle savedInstanceState)
{
if( savedInstanceState.getBoolean( add_project1.PHOTO_TAKEN ) )
{
onPhotoTaken();
}
}
@Override
protected void onSaveInstanceState( Bundle outState )
{
outState.putBoolean( add_project1.PHOTO_TAKEN, _taken );
}
实际上,当我们在Google nexus 1设备上运行此代码时,问题就出现了
当它捕获图像时,当我们单击“完成”按钮时,会出现异常。这是Uri SelectedImage=data.getData中的空指针 你能给我完整的代码吗?或者我把我的问题贴在这里