图库不会在Android中使用Intent显示图片

时间:2019-07-30 09:30:33

标签: android android-intent

我在其他项目中尝试了相同的代码,并且运行正常。我的问题是,当我单击选择照片时,它应该打开图库以选择要上传的图片。但是,我的显示如下:

enter image description here

我拥有的另一个应用程序正在图库中显示图片。看看:

enter image description here

我已经仔细检查了一下,可以看到我对这段代码使用了正确的权限。

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.devcash">

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".WhyDevcash"></activity>
        <activity android:name=".HelpCenterEmployees" />

        <activity
            android:name=".MainActivity"
            android:screenOrientation="landscape" />
        <meta-data
            android:name="com.google.android.gms.vision.DEPENDENCIES"
            android:value="barcode" />
    </application>
</manifest>

这是我的MainActivity的代码段

    private static final int PICK_IMAGE = 100;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_employee);

        choosephoto = (LinearLayout) findViewById(R.id.empchoosephoto);
        choosephoto.setOnClickListener(this);
    }

@Override
    public void onClick(View v) {
        int sid = v.getId();

        switch (sid){
            case R.id.empchoosephoto:
                Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                startActivityForResult(gallery, PICK_IMAGE);
                break;
        }
     }

 @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode!=0){
            if(data!=null){
                empimageUri = data.getData();
                empimage.setImageURI(empimageUri);
            }
        }
    }

你能告诉我这个东西我想念什么吗?

1 个答案:

答案 0 :(得分:1)

intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);

尝试一下,您选择图像的意图可能是错误形成的