加载具有基本权限的照片



我有一个这样的代码:

public class MainActivity extends AppCompatActivity {
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
img = findViewById(R.id.img1);
}
public void onClick(View v) {
new DownloadImageTask((ImageView) findViewById(R.id.img1))
.execute("http://view:view@178.217.49.11:5022/tmpfs/snap.jpg"");
}
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
}

它从这个链接加载照片:http://92.63.192.191/d/SCP-1017.png,但它没有从这里加载照片:http://view:view@178.217.49.11:5022/tmpfs/snap.jpg

UPDATE

我意识到我需要使用基本权限,但是我不知道怎么做。

更新2

我做到了!这是我的结果类:

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
URL url = new URL(urls[0]);
URLConnection uc = url.openConnection();
String userpass = USERNAME + ":" + PASSWORD;
String basicAuth = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
basicAuth = "Basic " + new String(Base64.getEncoder().encode(userpass.getBytes()));
}
uc.setRequestProperty ("Authorization", basicAuth);
InputStream in = uc.getInputStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}  
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
URL url = new URL(urls[0]);
URLConnection uc = url.openConnection();
String userpass = USERNAME + ":" + PASSWORD;
String basicAuth = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
basicAuth = "Basic " + new String(Base64.getEncoder().encode(userpass.getBytes()));
}
uc.setRequestProperty ("Authorization", basicAuth);
InputStream in = uc.getInputStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}

最新更新