Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的图库意图是不显示图像?为什么?_Java_Android_Retrofit2 - Fatal编程技术网

Java 我的图库意图是不显示图像?为什么?

Java 我的图库意图是不显示图像?为什么?,java,android,retrofit2,Java,Android,Retrofit2,这是将图像插入数据库的代码。问题是当使用函数“requestWritePermission();”时,我无法从其他人进入此活动,但当我删除此函数时。。此活动开始,但当单击“上载图像”按钮时,它会进入图库,但不会显示图像。。我不明白。请帮忙 包com.example.tariqziad.myapplication import android.Manifest; import android.annotation.TargetApi; import android.content.Intent;

这是将图像插入数据库的代码。问题是当使用函数“requestWritePermission();”时,我无法从其他人进入此活动,但当我删除此函数时。。此活动开始,但当单击“上载图像”按钮时,它会进入图库,但不会显示图像。。我不明白。请帮忙

包com.example.tariqziad.myapplication

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