【发布时间】:2016-05-25 06:56:33
【问题描述】:
在读取设备 ID 等时,我在 Android 6 中遇到错误。
它在所有其他版本 4.0、5.1 等中如何正常工作。
这是我的代码:
public class MyDevIDS extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
PackageInfo pInfo = null;
try {
pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
String version = pInfo.versionName;
TextView versionText = (TextView) findViewById(R.id.tv7);
versionText.setText("Version : " + version);
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String imei_id = telephonyManager.getDeviceId();
TextView imei_idT = (TextView) findViewById(R.id.tv9);
String imei_idV = "<b><font color=#008000>" + imei_id + "</b></font>";
imei_idT.setText(Html.fromHtml("IMEI ID : " + imei_idV));
String device_id = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
TextView device_idT = (TextView) findViewById(R.id.tv10);
String device_idV = "<b><font color=#008000>" + device_id + "</b></font>";
device_idT.setText(Html.fromHtml("Device ID : " + device_idV));
}
}
这是我遇到的错误
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.devid/com.test.devid.MyDevIDS}: java.lang.SecurityException: getDeviceId: Neither user 10102 nor current process has android.permission.READ_PHONE_STATE.
我是如何在清单中授予权限的……但我需要在 Android 6 中授予运行时权限……
为此我关注了this https://developer.android.com/training/permissions/requesting.html
但我试过了,但它不起作用..
谁能建议我如何在我的代码中使用运行时权限..
【问题讨论】:
-
使用这个库并阅读文档。 github.com/ParkSangGwon/TedPermission
-
“我试过了,但是没用” 不是一个有用的问题描述。 确切您尝试了什么(请提供代码),确切什么不起作用?
-
先生其实我是新手,所以我已经给出了我的代码,,我不知道在哪里使用以及如何使用......
标签: android permissions manifest