2020.09.23
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
package com.tt.activity;
|
||||
|
||||
import android.view.KeyEvent;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.tt.base.BaseActivity;
|
||||
import com.tt.ttutils.R;
|
||||
import com.tt.ttutils.java.ToastUtil;
|
||||
|
||||
public class JMainActivity extends BaseActivity {
|
||||
|
||||
@@ -19,4 +23,33 @@ public class JMainActivity extends BaseActivity {
|
||||
protected void initData() {
|
||||
|
||||
}
|
||||
|
||||
// 用来计算返回键的点击间隔时间
|
||||
private long exitTime = 0;
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK
|
||||
&& event.getAction() == KeyEvent.ACTION_DOWN) {
|
||||
if ((System.currentTimeMillis() - exitTime) > 1000) {
|
||||
//弹出提示,可以有多种方式
|
||||
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
|
||||
exitTime = System.currentTimeMillis();
|
||||
} else {
|
||||
finish();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
private long mPreClickTime=0;
|
||||
|
||||
private void lazyExit() {
|
||||
if (System.currentTimeMillis() - mPreClickTime > 1000) {
|
||||
ToastUtil.show("再按一次,退出");
|
||||
mPreClickTime = System.currentTimeMillis();
|
||||
} else {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,18 @@
|
||||
package com.tt.ttutils.java;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.provider.Settings;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
@@ -40,6 +50,85 @@ public class DevicesUtils {
|
||||
}
|
||||
return serial;
|
||||
}
|
||||
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
public static String getAndroiodScreenProperty(Context context) {
|
||||
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
|
||||
DisplayMetrics dm = new DisplayMetrics();
|
||||
wm.getDefaultDisplay().getRealMetrics(dm);
|
||||
int width = dm.widthPixels; // 屏幕宽度(像素)
|
||||
int height = dm.heightPixels; // 屏幕高度(像素)
|
||||
float density = dm.density; // 屏幕密度(0.75 / 1.0 / 1.5)
|
||||
int densityDpi = dm.densityDpi; // 屏幕密度dpi(120 / 160 / 240)
|
||||
// 屏幕宽度算法:屏幕宽度(像素)/屏幕密度
|
||||
int screenWidth = (int) (width / density); // 屏幕宽度(dp)
|
||||
int screenHeight = (int) (height / density);// 屏幕高度(dp)
|
||||
|
||||
|
||||
Log.e("h_bl", "屏幕宽度(像素):" + width);
|
||||
Log.e("h_bl", "屏幕高度(像素):" + height);
|
||||
Log.e("h_bl", "屏幕密度(0.75 / 1.0 / 1.5):" + density);
|
||||
Log.e("h_bl", "屏幕密度dpi(120 / 160 / 240):" + densityDpi);
|
||||
Log.e("h_bl", "屏幕宽度(dp):" + screenWidth);
|
||||
Log.e("h_bl", "屏幕高度(dp):" + screenHeight);
|
||||
return screenWidth+"×"+screenHeight;
|
||||
}
|
||||
|
||||
public static String getIMEI(Context context) {
|
||||
String IMEI = "unknow";
|
||||
String IMEI1, IMEI2, IMEI3;
|
||||
//获取手机设备号
|
||||
TelephonyManager TelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||
//8.0及以后版本获取
|
||||
// if (android.os.Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP) {
|
||||
// IMEI1 = TelephonyMgr.getDeviceId();
|
||||
// } else
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
// try {
|
||||
// Method method = TelephonyMgr.getClass().getMethod("getImei");
|
||||
// IMEI2 = (String) method.invoke(TelephonyMgr);
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// Log.e("getIMEI", e.getMessage());
|
||||
// }
|
||||
// } else {//9.0到10.0获取
|
||||
IMEI = Settings.System.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
|
||||
}
|
||||
Log.e("IMEI:", "IMEI: " + IMEI);
|
||||
return IMEI.toUpperCase();
|
||||
}
|
||||
public static String getProperty(String key, String defaultValue) {
|
||||
String value = defaultValue;
|
||||
try {
|
||||
Class<?> c = Class.forName("android.os.SystemProperties");
|
||||
Method get = c.getMethod("get", String.class, String.class);
|
||||
value = (String) (get.invoke(c, key, "unknown"));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
public static String getMachine(Context context) {
|
||||
String device = Build.MODEL;//机型
|
||||
String imei = getIMEI(context);
|
||||
String system_version = Build.VERSION.RELEASE;
|
||||
String firmware_version =getProperty("ro.build.display.id", "获取失败") ;
|
||||
String rom = getProperty("ro.custom.build.version", "获取失败");
|
||||
String screen_rate=getAndroiodScreenProperty(context);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
try {
|
||||
jsonObject.put("device",device);
|
||||
jsonObject.put("imei",imei);
|
||||
jsonObject.put("system_version",system_version);
|
||||
jsonObject.put("firmware_version",firmware_version);
|
||||
jsonObject.put("rom",rom);
|
||||
jsonObject.put("screen_rate",screen_rate);
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return jsonObject.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,17 @@
|
||||
package com.tt.ttutils.kt
|
||||
|
||||
import java.util.logging.Handler
|
||||
import android.content.Context
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.os.Message
|
||||
import android.widget.Toast
|
||||
|
||||
|
||||
class ToastUtil {
|
||||
private val mhandler: Handler = object : Handler(Looper.getMainLooper()) {}
|
||||
|
||||
fun init(context: Context) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
BIN
app/src/zip/AndroidCirCleView(jb51.net).rar
Normal file
BIN
app/src/zip/AndroidCirCleView(jb51.net).rar
Normal file
Binary file not shown.
Reference in New Issue
Block a user