1
1
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user