【问题标题】:Android- taking a picture for temporary use with the camera intentAndroid-使用相机意图拍摄照片以供临时使用
【发布时间】:2015-02-18 23:41:08
【问题描述】:

我正在使用内置相机意图拍照,我的应用只需要图像来创建一个位图。是否可以在不创建我自己的自定义相机的情况下避免将图像保存到画廊?这是我当前的拍照代码。

public void open() {
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(intent, 1);
}
static Bitmap bp;

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    bp = (Bitmap) data.getExtras().get("data");
    onNavigationDrawerItemSelected(currentPosition);

    }

【问题讨论】:

    标签: android android-intent camera


    【解决方案1】:

    不,但你可以删除它,试试这个代码:

     private void DeletePicTaken(){
                final String[] imageColumns = { BaseColumns._ID, MediaColumns.DATA };
                final String imageOrderBy = BaseColumns._ID + " DESC";
                Cursor imageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns, null, null, imageOrderBy);
                if(imageCursor.moveToFirst()){
                    //int id = imageCursor.getInt(imageCursor.getColumnIndex(MediaStore.Images.Media._ID));
                    String fullPath = imageCursor.getString(imageCursor.getColumnIndex(MediaColumns.DATA));
                    //imageCursor.close();
                    File file = new File(fullPath);
                    file.delete();
                }
    
    
            } 
    
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        bp = (Bitmap) data.getExtras().get("data");
        onNavigationDrawerItemSelected(currentPosition);
        DeletePicTaken();
        }
    

    【讨论】:

    • 我找到了崩溃的原因(我缺少清单中的 READ_EXTERNAL_STORAGE 权限),但是图库中的图像仍然存在
    • 对于使用此解决方案的任何人,请确保您在清单中同时拥有 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限。还需要更新我的图库,否则我将在已删除的位置出现空白图像;此代码完成: sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(latestSavedImage))); LastSavedImage 是您删除的文件。
    猜你喜欢
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 2015-01-31
    相关资源
    最近更新 更多