我需要捕获设备的IMEI和IMSI以及您已经知道的信息,这需要一个权限“android.permission.read_phone_state”
。当这个对话框窗口向用户请求这个权限时,我的应用程序被停止了。怎么解决?
@SuppressLint("MissingPermission")
public void ListarApps(View view) throws PackageManager.NameNotFoundException {
String myDeviceModel = android.os.Build.MODEL;
String myDeviceProduct = android.os.Build.MANUFACTURER;
String myVersion = Build.VERSION.RELEASE;
System.out.println("Manufacturer: " + myDeviceProduct +
" - Model: " + myDeviceModel + " - Android: " + myVersion);
// Code For IMEI AND IMSI NUMBER ("android.permission.READ_PHONE_STATE")
final int MY_PERMISSIONS_REQUEST_READ_PHONE_STATE = 999;
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_PHONE_STATE}, MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
String serviceName = Context.TELEPHONY_SERVICE;
TelephonyManager m_telephonyManager = (TelephonyManager) getSystemService(serviceName);
String IMEI, IMSI;
/*IMEI = m_telephonyManager.getDeviceId();
IMSI = m_telephonyManager.getSubscriberId();
System.out.println("IMEI: " + IMEI);
System.out.println("IMSI: " + IMSI);*/
}
更新2(AndroidManifest.xml文件):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.testando.teste">
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
好吧,根据我的理解,您首先需要检查是否授予权限,然后为getdeviceid
编写代码
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
// ask user permission
} else {
// READ_PHONE_STATE permission is already been granted.
TelephonyManager mngr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
IMEI = mngr.getDeviceId();
}
您还需要重写OnRequestPermissionsResult
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// READ_PHONE_STATE permission is already been granted.
TelephonyManager mngr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
IMEI = mngr.getDeviceId();
}
}
每当我请求权限时,我的应用程序就会崩溃。作为清单标记的子项,我在清单中定义了正确的使用权限。它没有给出任何错误,只是一个弹出窗口说包安装程序已经停止,监视器中有一行说“sendUserActionEvent()mView==null”,我不确定这与崩溃有关。 这是我请求权限的片段: 最低sdk设置为23,在三星Galaxy S7上进行测试。 你可以在这里看到完整的代码https://github.
我正在使用permission_handler包请求对应用程序中存储的读取权限,在调试模式下一切工作正常,当我以“flutter run-release”运行代码时,问题就出现了,但当我将代码导出为apk时,权限对话框不会出现。我不知道我做错了什么请帮帮我!! 这是飞镖代码
我目前正在开发适用于Android的即时应用程序,我想使用相机。我在片段中请求相机权限,但没有出现权限请求对话框。 这就是我在片段中请求权限的方式: 现在,我希望显示权限请求对话框,就像应用程序本身(com.android.Application)一样。不幸的是,它没有出现在即时应用程序(com.android.instantapp)中。 此外,我发现 调用,但使用grantResults[0]=
当我在除我的计算机之外的任何计算机上运行此代码的发行版时,我得到“已经停止工作”错误:使用系统;使用System.Collections.Generic;使用System.ComponentModel;使用System.Data;使用System.Drawing;使用System.LINQ;使用System.Text;使用System.Threading.Tasks;使用System.Window
我已在清单文件中添加了所有权限。在Lollipop中,所有应用程序都会在安装应用程序期间询问权限,但当应用程序安装在Marshmallow中时,权限不是询问。 清单权限是
我正在使用谷歌应用程序默认凭据来获取使用Gmail API的标签列表。 当使用 命令在本地运行应用程序时,我在请求https://www.googleapis.com/gmail/v1/users/user40domain.com/labels?alt=json时获得 然后我部署了应用程序并尝试访问。但是当我请求https://www.googleapis.com/gmail/v1/users/u