禁止横屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
android:screenOrientation="portrait"
监听软键盘回车键
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEND
|| actionId == EditorInfo.IME_ACTION_DONE
|| (event != null && KeyEvent.KEYCODE_ENTER == event.getKeyCode() && KeyEvent.ACTION_DOWN == event.getAction())) {
}
return false;
}
});
okhttp自定义DNS
public class ApiDns implements Dns {
@Override
public List<InetAddress> lookup(String hostname) throws UnknownHostException {
if (hostname == null) {
throw new UnknownHostException("hostname == null");
} else {
try {
List<InetAddress> mInetAddressesList = new ArrayList<>();
InetAddress[] mInetAddresses = InetAddress.getAllByName(hostname);
for (InetAddress address : mInetAddresses) {
if (address instanceof Inet4Address) {
mInetAddressesList.add(0, address);
} else {
mInetAddressesList.add(address);
}
}
return mInetAddressesList;
} catch (NullPointerException var4) {
UnknownHostException unknownHostException = new UnknownHostException("Broken system behaviour");
unknownHostException.initCause(var4);
throw unknownHostException;
}
}
}
}
调用自定义DNS
private static OkHttpClient initClient() {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
AppLogUtil.printE(message);
}
});
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
builder.addInterceptor(httpLoggingInterceptor)
.addInterceptor(new HttpInterceptor())
.connectTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.dns(new ApiDns());
return builder.build();
}
OKHTTP添加公参
public class HttpInterceptor implements Interceptor {
String time;
private Response response;
@Override
public Response intercept(Chain chain) throws IOException {
Request originalRequest = chain.request();
String method = originalRequest.method();
if("GET".equals(method)){
HttpUrl httpUrl = originalRequest.url()
.newBuilder()
.addQueryParameter("version","")
.addQueryParameter("package_name","")
.addQueryParameter("platform","")
.addQueryParameter("timestamp","")
.addQueryParameter("key","")
.build();
Request request = new Request.Builder().url(httpUrl).build();
response = chain.proceed(request);
}else if("POST".equals(method)){
RequestBody requestBody = originalRequest.body();
if(requestBody instanceof FormBody){
FormBody.Builder builder = new FormBody.Builder();
FormBody originalFormBody = (FormBody) originalRequest.body();
for (int i = 0; i < originalFormBody.size(); i++) {
builder.add(originalFormBody.name(i),originalFormBody.value(i));
}
builder.add("key","");
builder.add("timestamp","");
builder.add("version","");
builder.add("package_name","");
builder.add("platform","");
FormBody formBody = builder.build();
Request request = originalRequest.newBuilder().post(formBody).build();
response = chain.proceed(request);
}else{
response = chain.proceed(originalRequest);
}
}
return response;
}