kitkat不允许我上传图片

时间:2014-08-27 12:10:07

标签: android-4.4-kitkat

我目前正在使用默认的"文件选择/图像选择器"在android中选择我想上传到我的服务器的图像。但文件选择器不能与android kitkat一起使用。当我使用文件选择器选择图像时,URI或我图像的本地地址将返回为NULL。我的代码与从Android 2.2 / 2.3到4.2 / 4.3开始的其他Android设备完美配合。

我想知道的是,是否有解决方法或是否有自定义文件选择器或我应该使用的脚本?

任何帮助都表示赞赏,因为这是我第一次使用stackoverflow。谢谢

1 个答案:

答案 0 :(得分:0)

不记得我找到了它。

Bitmap bitmap;

private static final int READ_REQUEST_CODE = 42;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

 requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
  setContentView(R.layout.activity_main);


 Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);

// Filter to only show results that can be "opened", such as a
// file (as opposed to a list of contacts or timezones)
 intent.addCategory(Intent.CATEGORY_OPENABLE);

// Filter to show only images, using the image MIME data type.
// If one wanted to search for ogg vorbis files, the type would be "audio/ogg".
// To search for all documents available via installed storage providers,
// it would be "*/*".
 intent.setType("image/*");

 startActivityForResult(intent, READ_REQUEST_CODE);

    }


@Override
public void onActivityResult(int requestCode, int resultCode,
    Intent resultData) {

// The ACTION_OPEN_DOCUMENT intent was sent with the request code
// READ_REQUEST_CODE. If the request code seen here doesn't match, it's the
// response to some other intent, and the code below shouldn't run at all.

 if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
    // The document selected by the user won't be returned in the intent.
    // Instead, a URI to that document will be contained in the return intent
    // provided to this method as a parameter.
    // Pull that URI using resultData.getData().
     Uri uri = null;
     if (resultData != null) {
         uri = resultData.getData();

        try {
            bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),uri);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         ImageView my_img_view = (ImageView ) findViewById (R.id.uploadlayout2);
         my_img_view.setImageBitmap(bitmap);                                        
    }
 }
 }
这对我有用。 只需删除关于声明字符串并烘烤uri的最后几行。你很高兴。