1
This commit is contained in:
2023-12-07 15:59:50 +08:00
parent bce11daee7
commit 204fe9e8ac
36 changed files with 357 additions and 47 deletions

View File

@@ -3,26 +3,31 @@ package com.nbee.echolink;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import com.nbee.echolink.broadcast.PhoneCallReceiver;
import com.nbee.echolink.broadcast.SMSReceiver;
import com.nbee.echolink.service.MonitorService;
import com.nbee.echolink.utils.PermissionUtils;
public class MainActivity extends AppCompatActivity {
private final String TAG = "MainActivity";
private PermissionUtils permissionUtils;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
permissionUtils = new PermissionUtils(this);
permissionUtils.checkPermissions();
// 启动MonitorService服务
Intent serviceIntent = new Intent(this, MonitorService.class);
startService(serviceIntent);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
permissionUtils.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}

View File

@@ -0,0 +1,162 @@
package com.nbee.echolink.utils;
import java.util.Locale;
import android.content.Context;
import android.telephony.TelephonyManager;
import android.util.Log;
public class DeviceInfoUtils {
/**
* 获取设备宽度px
*
*/
public static int getDeviceWidth(Context context) {
return context.getResources().getDisplayMetrics().widthPixels;
}
/**
* 获取设备高度px
*/
public static int getDeviceHeight(Context context) {
return context.getResources().getDisplayMetrics().heightPixels;
}
/**
* 获取设备的唯一标识, 需要 “android.permission.READ_Phone_STATE”权限
* Android 10 无法获取此权限
*/
// public static String getIMEI(Context context) {
// TelephonyManager tm = (TelephonyManager) context
// .getSystemService(Context.TELEPHONY_SERVICE);
// String deviceId = tm.getDeviceId();
// if (deviceId == null) {
// return "UnKnown";
// } else {
// return deviceId;
// }
// }
/**
* 获取厂商名
* **/
public static String getDeviceManufacturer() {
return android.os.Build.MANUFACTURER;
}
/**
* 获取产品名
* **/
public static String getDeviceProduct() {
return android.os.Build.PRODUCT;
}
/**
* 获取手机品牌
*/
public static String getDeviceBrand() {
return android.os.Build.BRAND;
}
/**
* 获取手机型号
*/
public static String getDeviceModel() {
return android.os.Build.MODEL;
}
/**
* 获取手机主板名
*/
public static String getDeviceBoard() {
return android.os.Build.BOARD;
}
/**
* 设备名
* **/
public static String getDeviceDevice() {
return android.os.Build.DEVICE;
}
/**
*
*
* fingerprit 信息
* **/
public static String getDeviceFubgerprint() {
return android.os.Build.FINGERPRINT;
}
/**
* 硬件名
*
* **/
public static String getDeviceHardware() {
return android.os.Build.HARDWARE;
}
/**
* 主机
*
* **/
public static String getDeviceHost() {
return android.os.Build.HOST;
}
/**
*
* 显示ID
* **/
public static String getDeviceDisplay() {
return android.os.Build.DISPLAY;
}
/**
* ID
*
* **/
public static String getDeviceId() {
return android.os.Build.ID;
}
/**
* 获取手机用户名
*
* **/
public static String getDeviceUser() {
return android.os.Build.USER;
}
/**
* 获取手机 硬件序列号
* **/
public static String getDeviceSerial() {
return android.os.Build.SERIAL;
}
/**
* 获取手机Android 系统SDK
*
* @return
*/
public static int getDeviceSDK() {
return android.os.Build.VERSION.SDK_INT;
}
/**
* 获取手机Android 版本
*
* @return
*/
public static String getDeviceAndroidVersion() {
return android.os.Build.VERSION.RELEASE;
}
/**
* 获取当前手机系统语言。
*/
public static String getDeviceDefaultLanguage() {
return Locale.getDefault().getLanguage();
}
/**
* 获取当前系统上的语言列表(Locale列表)
*/
public static String getDeviceSupportLanguage() {
Log.e("wangjie", "Local:" + Locale.GERMAN);
Log.e("wangjie", "Local:" + Locale.ENGLISH);
Log.e("wangjie", "Local:" + Locale.US);
Log.e("wangjie", "Local:" + Locale.CHINESE);
Log.e("wangjie", "Local:" + Locale.TAIWAN);
Log.e("wangjie", "Local:" + Locale.FRANCE);
Log.e("wangjie", "Local:" + Locale.FRENCH);
Log.e("wangjie", "Local:" + Locale.GERMANY);
Log.e("wangjie", "Local:" + Locale.ITALIAN);
Log.e("wangjie", "Local:" + Locale.JAPAN);
Log.e("wangjie", "Local:" + Locale.JAPANESE);
return Locale.getAvailableLocales().toString();
}
}

View File

@@ -0,0 +1,79 @@
package com.nbee.echolink.utils;
import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.widget.Toast;
public class PermissionUtils {
private static final int PERMISSION_REQUEST_CODE = 1;
private Activity activity;
public PermissionUtils(Activity activity) {
this.activity = activity;
}
public void checkPermissions() {
String[] permissions = {
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.SEND_SMS,
Manifest.permission.READ_CALL_LOG,
Manifest.permission.READ_CONTACTS
};
if (!hasPermissions(permissions)) {
ActivityCompat.requestPermissions(activity, permissions, PERMISSION_REQUEST_CODE);
}
}
private boolean hasPermissions(String... permissions) {
for (String permission : permissions) {
if (ContextCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
return true;
}
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == PERMISSION_REQUEST_CODE) {
StringBuilder deniedPermissions = new StringBuilder();
for (int i = 0; i < grantResults.length; i++) {
if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {
if (deniedPermissions.length() > 0) deniedPermissions.append(", ");
deniedPermissions.append(permissions[i]);
}
}
if (deniedPermissions.length() > 0) {
// 显示对话框
showAlert("以下权限被拒绝:\n" + deniedPermissions.toString());
} else {
// 所有请求的权限都被授予
// 在这里处理所有权限被授予的情况
showToast("已授予运行所需的权限");
}
}
}
private void showAlert(String message) {
new AlertDialog.Builder(activity)
.setMessage(message)
.setPositiveButton("确认", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.create()
.show();
}
private void showToast(String message) {
Toast.makeText(activity, message, Toast.LENGTH_SHORT).show();
}
}