从三星手机拍照意图获取乌里空在拍摄照片 [英] Getting Uri Null in capture photo from camera intent in samsung mobile

查看:101
本文介绍了从三星手机拍照意图获取乌里空在拍摄照片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到空的contenturi的三星手机,同时捕捉照片的人从手机摄像头,但其余的工作的罚款。

  @覆盖
    保护无效onActivityResult(INT申请code,INT结果code,意图数据){
        super.onActivityResult(要求code,因此code,数据);
        尝试
        {
             如果(要求code == IMAGE_CAPTURE){
                如果(结果code == RESULT_OK){

                    乌里contentUri = data.getData();
                    如果(contentUri!= NULL)
                    {
                        的String []凸出= {MediaStore.Images.Media.DATA};
                        光标光标= managedQuery(contentUri,凸出,NULL,NULL,NULL);
                        INT与Column_Index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                        cursor.moveToFirst();
                        imageUri = Uri.parse(cursor.getString(Column_Index中));
                    }

                    。tempBitmap =(位图)data.getExtras()获得(数据);
                    mainImageView.setImageBitmap(tempBitmap);
                    isCaptureFromCamera = TRUE;
                }
            }
 

解决方案

这上面的code工作在一些移动,但不会在三星手机在我的情况下工作,所以我实现了所有设备的通用逻辑。

  

捕捉从相机中的照片后,我实现了一个逻辑使用游标并循环光标来获取最后拍摄的照片的路径从camera.The低于code在任何​​设备上工作得很好。

 光标光标= getContentResolver()查询(Media.EXTERNAL_CONTENT_URI,新的String [] {Media.DATA,Media.DATE_ADDED,MediaStore.Images.ImageColumns.ORIENTATION},Media.DATE_ADDED ,空,DATE_ADDED ASC);
如果(光标= NULL和放大器;!&安培; cursor.moveToFirst())
{
    做 {
        的uri = Uri.parse(cursor.getString(cursor.getColumnIndex(Media.DATA)));
        photoPath = uri.toString();
    }而(cursor.moveToNext());
    cursor.close();
}
 

I am getting null in contenturi in samsung phones while capturing photo from camera but rest of others phones its working fine.

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {     
        super.onActivityResult(requestCode, resultCode, data);    
        try
        {
             if (requestCode == IMAGE_CAPTURE) {
                if (resultCode == RESULT_OK){

                    Uri contentUri = data.getData();
                    if(contentUri!=null)
                    {
                        String[] proj = { MediaStore.Images.Media.DATA };         
                        Cursor cursor = managedQuery(contentUri, proj, null, null, null);         
                        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);         
                        cursor.moveToFirst();         
                        imageUri = Uri.parse(cursor.getString(column_index));
                    }

                    tempBitmap = (Bitmap) data.getExtras().get("data"); 
                    mainImageView.setImageBitmap(tempBitmap);
                    isCaptureFromCamera = true;
                }
            }

解决方案

This above code works in some mobile but does not work in samsung mobile in my case, so I implemented the common logic for all devices.

After capturing the photo from camera, I implement a logic using Cursor and iterate the cursor to get the path of last captured photo from camera.The below code works fine on any device.

Cursor cursor = getContentResolver().query(Media.EXTERNAL_CONTENT_URI, new String[]{Media.DATA, Media.DATE_ADDED, MediaStore.Images.ImageColumns.ORIENTATION}, Media.DATE_ADDED, null, "date_added ASC");
if(cursor != null && cursor.moveToFirst())
{
    do {
        uri = Uri.parse(cursor.getString(cursor.getColumnIndex(Media.DATA)));
        photoPath = uri.toString();
    }while(cursor.moveToNext());
    cursor.close();
}

这篇关于从三星手机拍照意图获取乌里空在拍摄照片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆