我在其他项目中尝试了相同的代码,并且运行正常。我的问题是,当我单击选择照片时,它应该打开图库以选择要上传的图片。但是,我的显示如下:
我拥有的另一个应用程序正在图库中显示图片。看看:
我已经仔细检查了一下,可以看到我对这段代码使用了正确的权限。
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);
}
}
}
你能告诉我这个东西我想念什么吗?
答案 0 :(得分:1)
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);
尝试一下,您选择图像的意图可能是错误形成的