AndroidアップロードGithub
33078 ワード
爆款があります。
package com.dabao.retrofitmvpdemo.api;
/**
* Created by mypc on 2018/3/30.
*/
public class APIs {
// public static String debugApi="http://test.sipaote.cn/qinglong/delivery/ass/"; // 175.25.17.52
public static String debugApi="https://api.tianapi.com/";
// https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1
public static String wxnew="wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1";
public static String MeiTuan="v2/epassport/logon";
}
package com.dabao.retrofitmvpdemo.retrofit;
import java.util.List;
import java.util.Map;
import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Url;
/**
*
* Created by liqy on 2018/1/28.
*
*/
public interface SearchApi {
/**
* get
* @param url
* @return
*/
@GET
Observable get(@Url String url);
/**
* post
* @return
*/
@FormUrlEncoded
@POST
Observable post(@Url String url, @FieldMap Map map);
/**
* retrofit+Rxjava get
* @param fileUrl
* @return
*/
@GET
Observable downloadPicFromNet_Get(@Url String fileUrl);
/**
* retrofit json post
* @param url
* @param route
* @return
*/
//
// @Headers({
// "Content-Type:application/x-www-form-urlencoded",
// "Referer:http://e.waimai.meituan.com/v2/epassport/entry?BSID=wFLZPV9qAS9Gwzx6RnfB3QzIMKb-kQ0sN0uc0OtTTuoszWlnO6FF6_Y7Q8GBpd9lyJx1lqFu6QVurCjTCemOZA",
// "X-Requested-With:XMLHttpRequest",
// "User-Agent:MeituanWaimai/ai/3.0.1.0/32 Win Windows/6.3",
// })
@POST
Observable postFlyRoute(@Url String url,@Body RequestBody route);// RequestBody
/**
*
* @param photos
* @return
*
* @Part()
*/
@Multipart
@POST("qinglong/shop/picture/approve")
Observable uploadFile(@Part() List photos);
}
package com.dabao.retrofitmvpdemo.retrofit;
import android.support.annotation.NonNull;
import com.dabao.retrofitmvpdemo.api.APIs;
import com.dabao.retrofitmvpdemo.appliction.DashApplication;
import com.dabao.retrofitmvpdemo.util.LogUtils;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.ResponseBody;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.scalars.ScalarsConverterFactory;
/**
* Created by mypc on 2018/1/5.
*
* http://www.yulin520.com/
*/
public class RetrofitFacety {
// OKHttpClient
public static OkHttpClient okHttpClient = new OkHttpClient.Builder()
.addInterceptor(new ApplictionInterceptor()) //
.addInterceptor(DashApplication.loggingInterceptor) // retrofit
.cookieJar(new CookieManger(DashApplication.getAppContext())) // cookie sessionid
.connectTimeout(50, TimeUnit.SECONDS)
.readTimeout(50, TimeUnit.SECONDS)
.writeTimeout(50, TimeUnit.SECONDS)
.build();
// Retrofit , Url
public static SearchApi apiService = new Retrofit.Builder()
.baseUrl(APIs.debugApi)
//
.addConverterFactory(ScalarsConverterFactory.create())
.client(okHttpClient)
// call Observable, Retrofit RxJava
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build()
.create(SearchApi.class);
/**
* retrofit get
* @param url
* @return
*/
public static Observable get(final String url) {
return apiService.get(url)
.doOnNext(new Consumer() {
@Override
public void accept(@NonNull String s) throws Exception {
// LogUtils.i("wc",url+"===get=== ==="+s);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
/**
* json retrofit post
* @param url
* @param map
* @return
*
*
*/
public static Observable postFlyRoute(final String url, Map map){
String route = new Gson().toJson(map);
//3、 json json
RequestBody body=RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"),route);
return apiService.postFlyRoute(url,body)
.doOnNext(new Consumer() {
@Override
public void accept(@NonNull String s) throws Exception {
// LogUtils.i("wc",url+"==post=== ==="+s);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
/**
* retrofit post
* @param url
* @param map
* @return
*
*
*/
public static Observable post(final String url, Map map){
return apiService.post(url,map)
.doOnNext(new Consumer() {
@Override
public void accept(@NonNull String s) throws Exception {
// LogUtils.i("wc",url+"==post=== ==="+s);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
/**
*
* @param url
* @return
*/
public static Observable get_img(final String url){
return apiService.downloadPicFromNet_Get(url)
.doOnNext(new Consumer() {
@Override
public void accept(@NonNull ResponseBody s) throws Exception {
// LogUtils.i("wc",url+"==get=== ==="+s);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
//
public static class ApplictionInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
//
Request original = chain.request();
//
String method = original.method();
//
String oldUrl = original.url().toString();
LogUtils.i("jba"," ==="+original.url()+"---"+original.method()+"--"+original.header("User-agent"));
if ("POST".equals(method)){
Request build = original.newBuilder()
.header("token","wx_login_24_f8695dca3874362662824a6f41d33c2bba84d3025a910a4c54bd8cdeeabd5c5f")
.header("os", "Android")
.header("platform", "App")
.header("version", "2.0.0")
.header("device","0716f5e91daad18b")
.method(method, original.body())
.url(oldUrl)
.build();
Response response = chain.proceed(build);
return response;
}
return null;
}
}
}
package com.dabao.retrofitmvpdemo.retrofit;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import android.util.Log;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import okhttp3.Cookie;
import okhttp3.HttpUrl;
/**
* Created by zzt on 2018/5/30.
*/
public class PersistentCookieStore {
private static final String LOG_TAG = "PersistentCookieStore";
private static final String COOKIE_PREFS = "Cookies_Prefs";
private final Map> cookies;
private final SharedPreferences cookiePrefs;
public PersistentCookieStore(Context context) {
cookiePrefs = context.getSharedPreferences(COOKIE_PREFS, 0);
cookies = new HashMap<>();
// cookies map cookies
Map prefsMap = cookiePrefs.getAll();
for (Map.Entry entry : prefsMap.entrySet()) {
String[] cookieNames = TextUtils.split((String) entry.getValue(), ",");
for (String name : cookieNames) {
String encodedCookie = cookiePrefs.getString(name, null);
if (encodedCookie != null) {
Cookie decodedCookie = decodeCookie(encodedCookie);
if (decodedCookie != null) {
if (!cookies.containsKey(entry.getKey())) {
cookies.put(entry.getKey(), new ConcurrentHashMap());
}
cookies.get(entry.getKey()).put(name, decodedCookie);
}
}
}
}
}
protected String getCookieToken(Cookie cookie) {
return cookie.name() + "@" + cookie.domain();
}
public void add(HttpUrl url, Cookie cookie) {
String name = getCookieToken(cookie);
// cookies cookie
if (!cookie.persistent()) {
if (!cookies.containsKey(url.host())) {
cookies.put(url.host(), new ConcurrentHashMap());
}
cookies.get(url.host()).put(name, cookie);
} else {
if (cookies.containsKey(url.host())) {
cookies.get(url.host()).remove(name);
}
}
// cookies
SharedPreferences.Editor prefsWriter = cookiePrefs.edit();
prefsWriter.putString(url.host(), TextUtils.join(",", cookies.get(url.host()).keySet()));
prefsWriter.putString(name, encodeCookie(new OkHttpCookies(cookie)));
prefsWriter.apply();
}
public List get(HttpUrl url) {
ArrayList ret = new ArrayList<>();
if (cookies.containsKey(url.host()))
ret.addAll(cookies.get(url.host()).values());
return ret;
}
public boolean removeAll() {
SharedPreferences.Editor prefsWriter = cookiePrefs.edit();
prefsWriter.clear();
prefsWriter.apply();
cookies.clear();
return true;
}
public boolean remove(HttpUrl url, Cookie cookie) {
String name = getCookieToken(cookie);
if (cookies.containsKey(url.host()) && cookies.get(url.host()).containsKey(name)) {
cookies.get(url.host()).remove(name);
SharedPreferences.Editor prefsWriter = cookiePrefs.edit();
if (cookiePrefs.contains(name)) {
prefsWriter.remove(name);
}
prefsWriter.putString(url.host(), TextUtils.join(",", cookies.get(url.host()).keySet()));
prefsWriter.apply();
return true;
} else {
return false;
}
}
public List getCookies() {
ArrayList ret = new ArrayList<>();
for (String key : cookies.keySet())
ret.addAll(cookies.get(key).values());
return ret;
}
/**
* cookies string
*
* @param cookie cookie
* @return string
*/
protected String encodeCookie(OkHttpCookies cookie) {
if (cookie == null)
return null;
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
ObjectOutputStream outputStream = new ObjectOutputStream(os);
outputStream.writeObject(cookie);
} catch (IOException e) {
Log.d(LOG_TAG, "IOException in encodeCookie", e);
return null;
}
return byteArrayToHexString(os.toByteArray());
}
/**
* cookies
*
* @param cookieString cookies string
* @return cookie object
*/
protected Cookie decodeCookie(String cookieString) {
byte[] bytes = hexStringToByteArray(cookieString);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
Cookie cookie = null;
try {
ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
cookie = ((OkHttpCookies) objectInputStream.readObject()).getCookies();
} catch (IOException e) {
Log.d(LOG_TAG, "IOException in decodeCookie", e);
} catch (ClassNotFoundException e) {
Log.d(LOG_TAG, "ClassNotFoundException in decodeCookie", e);
}
return cookie;
}
/**
*
*
* @param bytes byte array to be converted
* @return string containing hex values
*/
protected String byteArrayToHexString(byte[] bytes) {
StringBuilder sb = new StringBuilder(bytes.length * 2);
for (byte element : bytes) {
int v = element & 0xff;
if (v < 16) {
sb.append('0');
}
sb.append(Integer.toHexString(v));
}
return sb.toString().toUpperCase(Locale.US);
}
/**
*
*
* @param hexString string of hex-encoded values
* @return decoded byte array
*/
protected byte[] hexStringToByteArray(String hexString) {
int len = hexString.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4) + Character.digit(hexString.charAt(i + 1), 16));
}
return data;
}
}
package com.dabao.retrofitmvpdemo.retrofit;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import okhttp3.Cookie;
/**
* Created by zzt on 2018/5/30.
*/
public class OkHttpCookies implements Serializable{
private transient final Cookie cookies;
private transient Cookie clientCookies;
public OkHttpCookies(Cookie cookies) {
this.cookies = cookies;
}
public Cookie getCookies() {
Cookie bestCookies = cookies;
if (clientCookies != null) {
bestCookies = clientCookies;
}
return bestCookies;
}
private void writeObject(ObjectOutputStream out) throws IOException {
out.writeObject(cookies.name());
out.writeObject(cookies.value());
out.writeLong(cookies.expiresAt());
out.writeObject(cookies.domain());
out.writeObject(cookies.path());
out.writeBoolean(cookies.secure());
out.writeBoolean(cookies.httpOnly());
out.writeBoolean(cookies.hostOnly());
out.writeBoolean(cookies.persistent());
}
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
String name = (String) in.readObject();
String value = (String) in.readObject();
long expiresAt = in.readLong();
String domain = (String) in.readObject();
String path = (String) in.readObject();
boolean secure = in.readBoolean();
boolean httpOnly = in.readBoolean();
boolean hostOnly = in.readBoolean();
boolean persistent = in.readBoolean();
Cookie.Builder builder = new Cookie.Builder();
builder = builder.name(name);
builder = builder.value(value);
builder = builder.expiresAt(expiresAt);
builder = hostOnly ? builder.hostOnlyDomain(domain) : builder.domain(domain);
builder = builder.path(path);
builder = secure ? builder.secure() : builder;
builder = httpOnly ? builder.httpOnly() : builder;
clientCookies = builder.build();
}
}
package com.dabao.retrofitmvpdemo.retrofit;
import android.content.Context;
import java.util.List;
import okhttp3.Cookie;
import okhttp3.CookieJar;
import okhttp3.HttpUrl;
/**
* Created by zzt on 2018/5/30.
*/
public class CookieManger implements CookieJar {
private static Context mContext;
private static PersistentCookieStore cookieStore;
public CookieManger(Context context) {
mContext = context;
if (cookieStore == null ) {
cookieStore = new PersistentCookieStore(mContext);
}
}
@Override
public void saveFromResponse(HttpUrl url, List cookies) {
if (cookies != null && cookies.size() > 0) {
for (Cookie item : cookies) {
cookieStore.add(url, item);
}
}
}
@Override
public List loadForRequest(HttpUrl url) {
List cookies =cookieStore.get(url);
return cookies;
}
}
package com.dabao.retrofitmvpdemo.retrofit;
import io.reactivex.Observer;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
/**
* Created by mypc on 2018/1/6.
*
*
*/
public abstract class BaseServer implements Observer {
public abstract void onSuccess(String myBean);
public abstract void onErroy(String ss);
@Override
public void onError(Throwable e) {
onErroy(" ");
}
@Override
public void onNext(String myBean) {
onSuccess(myBean);
}
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onComplete() {
}
}
package com.dabao.retrofitmvpdemo.retrofit;
/**
* Created by mypc on 2018/1/28.
*
* string
*/
public interface MyInterfaces {
void chenggong(String json);
void shibai(String ss);
}
package com.dabao.retrofitmvpdemo.retrofit;
import android.graphics.Bitmap;
/**
* Created by zzt on 2018/6/6.
*
*
*/
public interface MyJieKou {
void chenggong(Bitmap bitmap);
void shibai(String ss);
}
package com.dabao.retrofitmvpdemo.model;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import com.dabao.retrofitmvpdemo.retrofit.BaseServer;
import com.dabao.retrofitmvpdemo.retrofit.MyInterfaces;
import com.dabao.retrofitmvpdemo.retrofit.MyJieKou;
import com.dabao.retrofitmvpdemo.retrofit.RetrofitFacety;
import java.io.InputStream;
import java.util.Map;
import io.reactivex.Observer;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import okhttp3.ResponseBody;
/**
* Created by mypc on 2018/1/10.
*
* model , retrofit+RxJava , , !
*
* :http://blog.csdn.net/weixin_40430041/article/details/78988137
*/
public class MyModel {
/**
* model get
* @param url
* @param myInterfaces
*/
public void getModContent(final String url, final MyInterfaces myInterfaces){
RetrofitFacety.get(url)
.subscribe(new BaseServer() {
@Override
public void onSuccess(String json) {
myInterfaces.chenggong(json);
}
@Override
public void onErroy(String ss) {
myInterfaces.shibai(ss);
}
});
}
/**
* model post
* @param url
* @param map
* @param myInterfaces
*/
public void postModContent(final String url, final Map map, final MyInterfaces myInterfaces){
RetrofitFacety.post(url,map)
.subscribe(new BaseServer() {
@Override
public void onSuccess(String json) {
myInterfaces.chenggong(json);
}
@Override
public void onErroy(String ss) {
myInterfaces.shibai(ss);
}
});
}
/**
* model postFlyRoute json
* @param url
* @param map
* @param myInterfaces
*/
public void postFlyRouteModContent(final String url, final Map map, final MyInterfaces myInterfaces){
RetrofitFacety.postFlyRoute(url,map)
.subscribe(new BaseServer() {
@Override
public void onSuccess(String json) {
myInterfaces.chenggong(json);
}
@Override
public void onErroy(String ss) {
myInterfaces.shibai(ss);
}
});
}
/**
* M
* @param url
* @param myJieKou
*/
public void getMod_TuXingYanZheng(final String url,final MyJieKou myJieKou){
RetrofitFacety.get_img(url)
.subscribe(new Observer() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull ResponseBody responseBody) {
InputStream inputStream = responseBody.byteStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
myJieKou.chenggong(bitmap);
}
@Override
public void onError(@NonNull Throwable e) {
myJieKou.shibai(" !");
}
@Override
public void onComplete() {
}
});
}
}
package com.dabao.retrofitmvpdemo.presenter;
import android.graphics.Bitmap;
import com.dabao.retrofitmvpdemo.retrofit.MyInterfaces;
import com.dabao.retrofitmvpdemo.retrofit.MyJieKou;
import com.dabao.retrofitmvpdemo.model.MyModel;
import java.util.Map;
/**
*
* @param v view
*
* p ,
* 1.p v
* 2. model url , model
* 3. p v
*/
// p
public class MyPresenter {
private final MyModel myModel;
V view;
public MyPresenter() {
myModel = new MyModel();
}
// p v
public void attch(V view){
this.view=view;
}
/**
* present get
* @param url
* @param myInterfaces
*/
public void getPreContent(String url, final MyInterfaces myInterfaces){
myModel.getModContent(url, new MyInterfaces() {
@Override
public void chenggong(String json) {
myInterfaces.chenggong(json);
}
@Override
public void shibai(String ss) {
myInterfaces.shibai(ss);
}
});
}
/**
* present post
* @param url
* @param map
* @param myInterfaces
*/
public void postPreContent(String url, Map map, final MyInterfaces myInterfaces){
myModel.postModContent(url, map, new MyInterfaces() {
@Override
public void chenggong(String json) {
myInterfaces.chenggong(json);
}
@Override
public void shibai(String ss) {
myInterfaces.shibai(ss);
}
});
}
/**
* present postFlyRoute json
* @param url
* @param map
* @param myInterfaces
*/
public void postFlyRoutePreContent(String url, Map map, final MyInterfaces myInterfaces){
myModel.postFlyRouteModContent(url, map, new MyInterfaces() {
@Override
public void chenggong(String json) {
myInterfaces.chenggong(json);
}
@Override
public void shibai(String ss) {
myInterfaces.shibai(ss);
}
});
}
/**
* P
* @param url
* @param myJieKou
*/
public void getPro_TuXingYanZheng(String url, final MyJieKou myJieKou){
myModel.getMod_TuXingYanZheng(url, new MyJieKou() {
@Override
public void chenggong(Bitmap bitmap) {
myJieKou.chenggong(bitmap);
}
@Override
public void shibai(String ss) {
myJieKou.shibai(ss);
}
});
}
// v p
public void setonDestroy(){
try{
this.view=null;
}catch (Exception e){
}
}
}
package com.dabao.retrofitmvpdemo;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.dabao.retrofitmvpdemo.api.APIs;
import com.dabao.retrofitmvpdemo.appliction.DashApplication;
import com.dabao.retrofitmvpdemo.base.BaseMVPActivity;
import com.dabao.retrofitmvpdemo.presenter.MyPresenter;
import com.dabao.retrofitmvpdemo.retrofit.BaseServer;
import com.dabao.retrofitmvpdemo.retrofit.MyInterfaces;
import com.dabao.retrofitmvpdemo.util.ImageUtils;
import com.dabao.retrofitmvpdemo.util.LogUtils;
import com.dabao.retrofitmvpdemo.util.MyUtils;
import com.dabao.retrofitmvpdemo.view.ForbidClickListener;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import static com.dabao.retrofitmvpdemo.retrofit.RetrofitFacety.apiService;
import static com.dabao.retrofitmvpdemo.util.ImageUtils.getPhotos;
public class MainActivity extends BaseMVPActivity> {
private Button btn;
private TextView tv;
private Button btup;
@Override
public MyPresenter initPresenter() {
if (myPresenter == null) {
myPresenter = new MyPresenter();
}
return myPresenter;
}
List photos = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
// //
// btn.setOnClickListener(new ForbidClickListener() {
// @Override
// public void forbidClick(View v) {
// Map map = new HashMap<>();
// map.put("BSID", "wFLZPV9qAS9Gwzx6RnfB3QzIMKb-kQ0sN0uc0OtTTuoszWlnO6FF6_Y7Q8GBpd9lyJx1lqFu6QVurCjTCemOZA");
// myPresenter.postPreContent(APIs.MeiTuan, map, new MyInterfaces() {
// @Override
// public void chenggong(String json) {
// tv.setText("json===" + json);
// }
//
// @Override
// public void shibai(String ss) {
// MyUtils.setToast(ss);
// }
// });
// }
// });
btn.setOnClickListener(new ForbidClickListener() {
@Override
public void forbidClick(View v) {
myPresenter.getPreContent(APIs.wxnew, new MyInterfaces() {
@Override
public void chenggong(String json) {
tv.setText("json===" + json);
}
@Override
public void shibai(String ss) {
MyUtils.setToast(ss);
}
});
}
});
//
btup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 6.0
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, DashApplication.WRITE_EXTERNAL_STORAGE);
}else{
//
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, 1000);
}
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode==DashApplication.WRITE_EXTERNAL_STORAGE){
if(grantResults[0]!=-1){
//
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, 1000);
}else{
return;
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//
if(requestCode==1000&resultCode==RESULT_OK){
Uri uri = data.getData();
File fileUri = ImageUtils.getFileUri(uri, this); // uri file
//
File photos1 = getPhotos(fileUri);
LogUtils.i("jba","photos=="+ photos1.toString());
tv.setText(photos1.toString());
photos.clear();
setPhotos(photos1,"identityFrontPic");
setPhotos(photos1,"identityBackPic");
setPhotos(photos1,"headerPic");
setPhotos(photos1,"businessPic");
Observable responseBodyCall = apiService.uploadFile(photos);
responseBodyCall.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseServer() {
@Override
public void onSuccess(String json) {
tv.setText(json);
}
@Override
public void onErroy(String ss) {
tv.setText(ss);
}
});
}
}
// file
private void setPhotos(File file,String key) {
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData(key, file.getName(), requestFile);
photos.add(body);
}
private void initView() {
btn = (Button) findViewById(R.id.btn);
btup = (Button) findViewById(R.id.btup);
tv = (TextView) findViewById(R.id.tv);
}
}