Java 我的图库意图是不显示图像?为什么?
这是将图像插入数据库的代码。问题是当使用函数“requestWritePermission();”时,我无法从其他人进入此活动,但当我删除此函数时。。此活动开始,但当单击“上载图像”按钮时,它会进入图库,但不会显示图像。。我不明白。请帮忙 包com.example.tariqziad.myapplicationJava 我的图库意图是不显示图像?为什么?,java,android,retrofit2,Java,Android,Retrofit2,这是将图像插入数据库的代码。问题是当使用函数“requestWritePermission();”时,我无法从其他人进入此活动,但当我删除此函数时。。此活动开始,但当单击“上载图像”按钮时,它会进入图库,但不会显示图像。。我不明白。请帮忙 包com.example.tariqziad.myapplication import android.Manifest; import android.annotation.TargetApi; import android.content.Intent;
import android.Manifest;
import android.annotation.TargetApi;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.provider.MediaStore;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.File;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import static android.R.attr.id;
public class ImageUpload extends AppCompatActivity {
Button uploadbutton, insertbutton;
ImageView imageView;
String mediaPath;
private static final int WRITE_PERMISSION = 0x01;
private static final int PICK_IMAGE = 100;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_upload);
//requestWritePermission();
uploadbutton= (Button)findViewById(R.id.upload);
insertbutton= (Button)findViewById(R.id.insert);
insertbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
uploadpic();
}
});
uploadbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent galleryIntent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent,PICK_IMAGE);
}
});
imageView=(ImageView)findViewById(R.id.imageview);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
try {
// When an Image is picked
if (requestCode == 0 && resultCode == RESULT_OK && null != data) {
// Get the Image from data
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
assert cursor != null;
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
mediaPath = cursor.getString(columnIndex);
// Set the Image in ImageView for Previewing the Media
imageView.setImageBitmap(BitmapFactory.decodeFile(mediaPath));
cursor.close();
} else {
Toast.makeText(this, "You haven't picked Image/Video", Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
Toast.makeText(this, "Something went wrong", Toast.LENGTH_LONG).show();
}
}
private void uploadpic() {
File file = new File(mediaPath);
RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), file);
MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("file", file.getName(), requestBody);
RequestBody filename = RequestBody.create(MediaType.parse("text/plain"), file.getName());
SchoolInterfaces t=SchoolApi.getClient().create(SchoolInterfaces.class);
Call<ImageResponse> call=t.uploadFile(fileToUpload,filename);
call.enqueue(new Callback<ImageResponse>() {
@Override
public void onResponse(Call<ImageResponse> call, Response<ImageResponse> response) {
ImageResponse serverResponse = response.body();
if (serverResponse != null) {
if (serverResponse.getSuccess()) {
/* Intent intent=new Intent(PostArea.this,SellerActivity.class);
intent.putExtra("id",id);
startActivity(intent); */
//finish();
} else {
Toast.makeText(getApplicationContext(), serverResponse.getMessage(),Toast.LENGTH_SHORT).show();
}
} else {
assert serverResponse != null;
Log.v("Response", serverResponse.toString());
}
}
@Override
public void onFailure(Call<ImageResponse> call, Throwable t) {
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
if(requestCode == WRITE_PERMISSION){
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "You must allow permission write external storage to your mobile device.", Toast.LENGTH_SHORT).show();
}
}
}
@TargetApi(Build.VERSION_CODES.M)
private void requestWritePermission() {
if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_PERMISSION);
}
}
}
导入android.Manifest;
导入android.annotation.TargetApi;
导入android.content.Intent;
导入android.content.pm.PackageManager;
导入android.database.Cursor;
导入android.graphics.BitmapFactory;
导入android.net.Uri;
导入android.os.Build;
导入android.provider.MediaStore;
导入android.support.v4.app.ActivityCompat;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.Button;
导入android.widget.ImageView;
导入android.widget.Toast;
导入java.io.File;
导入okhttp3.MediaType;
导入okhttp3.MultipartBody;
导入okhttp3.RequestBody;
2.电话;;
2.回拨;
2.回应;;
导入静态android.R.attr.id;
公共类ImageUpload扩展了AppCompatActivity{
按钮上传按钮,插入按钮;
图像视图图像视图;
字符串中介路径;
私有静态最终int-WRITE_权限=0x01;
私有静态最终整数选取图像=100;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u image\u上传);
//requestWritePermission();
uploadbutton=(按钮)findViewById(R.id.upload);
insertbutton=(按钮)findViewById(R.id.insert);
insertbutton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
上传pic();
}
});
uploadbutton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent gallerycontent=新意图(Intent.ACTION\u PICK,
android.provider.MediaStore.Images.Media.EXTERNAL\u CONTENT\u URI);
startActivityForResult(GalleryContent,PICK_图像);
}
});
imageView=(imageView)findViewById(R.id.imageView);
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
试一试{
//拾取图像时
if(requestCode==0&&resultCode==RESULT\u确定&&null!=数据){
//从数据中获取图像
Uri selectedImage=data.getData();
字符串[]filePathColumn={MediaStore.Images.Media.DATA};
Cursor Cursor=getContentResolver().query(selectedImage,filePathColumn,null,null);
断言游标!=null;
cursor.moveToFirst();
int columnIndex=cursor.getColumnIndex(filePathColumn[0]);
mediaPath=cursor.getString(columnIndex);
//在ImageView中设置图像以预览媒体
setImageBitmap(BitmapFactory.decodeFile(mediaPath));
cursor.close();
}否则{
Toast.makeText(这是“您还没有选择图像/视频”,Toast.LENGTH_LONG.show();
}
}捕获(例外e){
Toast.makeText(这是“出错了”,Toast.LENGTH_LONG.show();
}
}
私有void uploadpic(){
文件文件=新文件(mediaPath);
RequestBody RequestBody=RequestBody.create(MediaType.parse(“*/*”),文件);
MultipartBody.Part fileToUpload=MultipartBody.Part.createFormData(“文件”,file.getName(),requestBody);
RequestBody filename=RequestBody.create(MediaType.parse(“text/plain”)、file.getName();
SchoolInterfaces t=SchoolApi.getClient().create(SchoolInterfaces.class);
Call Call=t.uploadFile(fileToUpload,filename);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
ImageResponse serverResponse=response.body();
if(serverResponse!=null){
if(serverResponse.getSuccess()){
/*意向意向=新意向(区域后this,SellerActivity.class);
意向。额外(“id”,id);
星触觉(意向)*/
//完成();
}否则{
Toast.makeText(getApplicationContext(),serverResponse.getMessage(),Toast.LENGTH\u SHORT.show();
}
}否则{
断言服务器响应!=null;
Log.v(“Response”,serverResponse.toString());
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
}
});
}
@凌驾
public void onRequestPermissionsResult(int-requestCode,字符串权限[],int[]grantResults){
if(requestCode==写入权限){
if(grantResults[0]==已授予PackageManager.权限){
Toast.makeText(这是“您必须允许将外部存储写入移动设备的权限”。,Toast.LENGTH_SHORT.show();
}
}
}
@TargetApi(Build.VERSION\u CODES.M)
私有void requestWritePermission(){
if(checkSelfPermission(Manifest.permission.WRITE\u EXTERNAL\u STORAGE)!=PackageManager.permission\u provided){
ActivityCompat.requestPermissions(这个新字符串[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},WRITE_permission);
}
}
}
您是否可以尝试向清单文件添加权限,而不是尝试使用java代码发出请求?有时它发生在b