diff --git a/app/src/main/java/org/autojs/autojs/ui/main/MainActivity.java b/app/src/main/java/org/autojs/autojs/ui/main/MainActivity.java
index 5c6e9ecf..5fd38696 100644
--- a/app/src/main/java/org/autojs/autojs/ui/main/MainActivity.java
+++ b/app/src/main/java/org/autojs/autojs/ui/main/MainActivity.java
@@ -141,7 +141,7 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
}
private void checkPermissions() {
- checkPermission(Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE);
+ checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
}
private void showAccessibilitySettingPromptIfDisabled() {
@@ -245,18 +245,6 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
if (getGrantResult(Manifest.permission.READ_EXTERNAL_STORAGE, permissions, grantResults) == PackageManager.PERMISSION_GRANTED) {
StorageFileProvider.getDefault().notifyStoragePermissionGranted();
}
-
- if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_DENIED) {
- new ThemeColorMaterialDialogBuilder(this)
- .title(R.string.text_no_phone_state_permission)
- .content(R.string.info_no_phone_state_permission)
- .positiveText(R.string.text_request_permission)
- .negativeText(R.string.text_exit)
- .cancelable(false)
- .onPositive(((dialog, which) -> checkPermissions()))
- .onNegative((dialog, which) -> finish())
- .show();
- }
}
private int getGrantResult(String permission, String[] permissions, int[] grantResults) {
diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Device.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Device.java
index 9c5599d5..5d9e58d9 100644
--- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Device.java
+++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Device.java
@@ -1,10 +1,12 @@
package com.stardust.autojs.runtime.api;
+import android.Manifest;
import android.annotation.SuppressLint;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.pm.PackageManager;
import android.media.AudioManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
@@ -98,6 +100,7 @@ public class Device {
@SuppressLint("HardwareIds")
@Nullable
public String getIMEI() {
+ checkReadPhoneStatePermission();
try {
return ((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();
} catch (SecurityException e) {
@@ -105,6 +108,7 @@ public class Device {
}
}
+
@SuppressLint("HardwareIds")
public String getAndroidId() {
return Settings.Secure.getString(mContext.getContentResolver(), Settings.Secure.ANDROID_ID);
@@ -287,6 +291,16 @@ public class Device {
}
+ private void checkReadPhoneStatePermission() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ if (mContext.checkSelfPermission(Manifest.permission.READ_PHONE_STATE)
+ != PackageManager.PERMISSION_GRANTED) {
+ throw new SecurityException(mContext.getString(R.string.no_read_phone_state_permissin));
+ }
+ }
+ }
+
+
// just to avoid warning of null pointer to make android studio happy..
@NonNull
@SuppressWarnings("unchecked")
diff --git a/autojs/src/main/res/values/strings.xml b/autojs/src/main/res/values/strings.xml
index d8c72379..a2ce0e93 100644
--- a/autojs/src/main/res/values/strings.xml
+++ b/autojs/src/main/res/values/strings.xml
@@ -20,6 +20,7 @@
本脚本需要Auto.js版本号%d以上才能运行
打开侧拉菜单
关闭侧拉菜单
+ 没有读取设备信息权限