Java android.permission.READ\u PHONE\u状态权限被拒绝

Java android.permission.READ\u PHONE\u状态权限被拒绝,java,android,Java,Android,我得到一个异常,它告诉我使用getDeviceId()的权限被拒绝,但我有android.permission.READ\u PHONE\u STATE在我的清单中 以下是例外情况: getDeviceId:用户10055和当前进程都没有android.permission.READ\u PHONE\u状态。 以下是清单: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas

我得到一个异常,它告诉我使用
getDeviceId()
的权限被拒绝,但我有
android.permission.READ\u PHONE\u STATE
在我的清单中

以下是例外情况:

getDeviceId:用户10055和当前进程都没有android.permission.READ\u PHONE\u状态。

以下是清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="client.test.me.client" >
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
  <uses-permission android:name="android.permission.CALL_PHONE"/>
  <uses-permission android:name="android.permission.SEND_SMS"/>


  <application
   android:allowBackup="true"
   android:icon="@mipmap/ic_launcher"
   android:label="@string/app_name"
   android:theme="@style/AppTheme">
     <activity
      android:name=".HiddenActivity"
      android:label="@string/app_name"
      android:theme="@android:style/Theme.Translucent.NoTitleBar">
       <intent-filter>
         <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.LAUNCHER" />
       </intent-filter>
      </activity>
      <receiver android:name=".BootReceiver">
        <intent-filter>
          <action android:name="android.intent.action.BOOT_COMPLETED" />
          <category android:name="android.intent.category.HOME" />
        </intent-filter>
      </receiver>

      <service android:name="client.test.me.client.ClientService" >
        <intent-filter>
          <action android:name=".ClientService" />
        </intent-filter>
      </service>
  </application>
</manifest>
获取设备ID的代码:

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

byte[] idBytes = tm.getDeviceId().getBytes();
编辑:这不是重复的问题,我找不到与我有相同问题的问题。

试试这个

TelephonyManager TM = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

    // IMEI No.
    String imeiNo = TM.getDeviceId();

    // IMSI No.
    String imsiNo = TM.getSubscriberId();

    // SIM Serial No.
    String simSerialNo  = TM.getSimSerialNumber();

    // Android Unique ID
    String androidId = System.getString(this.getContentResolver(),Settings.Secure.ANDROID_ID);
别忘了加上

<uses-permission android:name="android.permission.READ_PHONE_STATE" />


到您的清单文件。

您测试的是哪个版本的Android,您的
targetSdkVersion
是什么?发布您的应用程序Android清单您可以发布完整的清单和异常吗?没有该权限,您无法获取设备id。好的,我已经编辑了我的帖子。我已经在做这些了。如果您阅读我的清单,您将看到我已经拥有该权限。您是否可以发布getDeviceId()和logcatPlease的代码,请参见上文所述。不同的症状但相同的问题。@headuck这一定是我现在要测试的问题。这是否意味着我的应用程序不会在android 6.0上运行?根据@headduck的链接,您需要使用requestPermissions()方法
<uses-permission android:name="android.permission.READ_PHONE_STATE" />