移除了主动请求READ_PHONE_STATE权限

This commit is contained in:
hyb1996
2018-07-11 17:30:06 +08:00
parent 01beaf7b37
commit f78f569461
3 changed files with 16 additions and 13 deletions

View File

@@ -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) {

View File

@@ -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")

View File

@@ -20,6 +20,7 @@
<string name="text_requires_app_version_to_run_the_script" formatted="true">本脚本需要Auto.js版本号%d以上才能运行</string>
<string name="text_drawer_open">打开侧拉菜单</string>
<string name="text_drawer_close">关闭侧拉菜单</string>
<string name="no_read_phone_state_permissin">没有读取设备信息权限</string>
</resources>