Java Android在使用改进的multipart上传图像时遇到问题?

Java Android在使用改进的multipart上传图像时遇到问题?,java,android,android-studio,retrofit,retrofit2,Java,Android,Android Studio,Retrofit,Retrofit2,我在尝试使用改型将图像上载到服务器时遇到以下错误,api接收头授权令牌,_method=“put”和Image=“imageName.jpg”作为参数,其他一切都是可选的,如有帮助,将不胜感激 java.io.FileNotFoundException:/storage/simulated/0/Download/space-wallper-21.jpg:open失败:EACCES(权限被拒绝) 加上这个 <uses-permission android:name="android.perm

我在尝试使用改型将图像上载到服务器时遇到以下错误,api接收头授权令牌,_method=“put”和Image=“imageName.jpg”作为参数,其他一切都是可选的,如有帮助,将不胜感激

java.io.FileNotFoundException:/storage/simulated/0/Download/space-wallper-21.jpg:open失败:EACCES(权限被拒绝)

加上这个

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


在清单文件的清单标记内。但是,请确保它在应用程序标记外。

对于低于Android 6.0的棉花糖:

    public class MainActivity extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback{

  private static final int REQUEST_WRITE_PERMISSION = 786;

  @Override
  public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    if (requestCode == REQUEST_WRITE_PERMISSION && grantResults[0] == PackageManager.PERMISSION_GRANTED) {            
        openFilePicker();//do your job
    }
  }

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

  private void requestPermission() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_WRITE_PERMISSION);
    } else {
        openFilePicker();//do your job
    }
  }
}
在清单中添加权限:

   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
有关更多信息,请参阅下面的链接


注意:不要忘记在清单文件中添加权限

必须在清单中添加写入外部存储的权限吗?是的,我现在添加了它,但仍然收到相同的错误。是的,我现在添加了它,但在失败时抛出时仍然收到相同的错误。如果您使用的是Marshmellow或更高版本,则需要请求运行时中的权限。你可以在这里了解更多()
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    public class MainActivity extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback{

  private static final int REQUEST_WRITE_PERMISSION = 786;

  @Override
  public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    if (requestCode == REQUEST_WRITE_PERMISSION && grantResults[0] == PackageManager.PERMISSION_GRANTED) {            
        openFilePicker();//do your job
    }
  }

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

  private void requestPermission() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_WRITE_PERMISSION);
    } else {
        openFilePicker();//do your job
    }
  }
}