- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在权限请求中遇到问题,当我运行我的应用程序时我得到 this message .当我点击“给我许可”时,它会打开 toast 并询问我是允许还是拒绝,当我点击允许时,它会关闭应用程序。然后我应该再次打开它,它会正常工作。当我单击按钮时,会显示我允许权限的 toast 消息,我的代码是否有任何错误?
谢谢
在 list 中:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
在名为 onSubmit() 的 onclick() 函数中的 java 代码中:
public class MainActivity extends AppCompatActivity {
private int PHONE_STATE_CODE=1;
private Button button;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
textView = (TextView) findViewById( R.id.textView2 );
}
public void onSubmit(View v){
TelephonyManager t = (TelephonyManager) getSystemService(
Context.TELEPHONY_SERVICE );
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(MainActivity.this, "you have already granted", Toast.LENGTH_SHORT).show();
} else {
reqPhonePermission();
}
String me =t.getDeviceId();
String id = t.getLine1Number();
}
~~~~~~~在 onClick() 之外
private void reqPhonePermission(){
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_PHONE_STATE)){
new AlertDialog.Builder(this).setTitle("permission needed").setMessage("this permission needed")
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.READ_PHONE_STATE},PHONE_STATE_CODE);
}
}) .setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
}).create().show();
} else {
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_PHONE_STATE},PHONE_STATE_CODE);
}
}
public void onRequestPermissionResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults ){
if(requestCode == PHONE_STATE_CODE){
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
Toast.makeText(this,"Permission granted",Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this,"Permission denied",Toast.LENGTH_SHORT).show();
}
}
最佳答案
需要权限的方法只有在权限被授予的情况下才会被调用。
当满足以下条件之一时,您可以确定授予了权限:
ContextCompat.checkSelfPermission == PackageManager.PERMISSION_GRANTED
grantResults[0] == PackageManager.PERMISSION_GRANTED
试试这段代码:
public void onSubmit(View v){
TelephonyManager t = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE );
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(MainActivity.this, "you have already granted", Toast.LENGTH_SHORT).show();
methodThatRequiresPermission();
} else {
reqPhonePermission();
}
}
public void onRequestPermissionResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults ){
if(requestCode == PHONE_STATE_CODE){
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
Toast.makeText(this,"Permission granted",Toast.LENGTH_SHORT).show();
methodThatRequiresPermission();
} else {
Toast.makeText(this,"Permission denied",Toast.LENGTH_SHORT).show();
}
}
}
private void methodThatRequiresPermission() {
String me =t.getDeviceId();
String id = t.getLine1Number();
//Use the values here
}
关于Android studio 请求权限和 IMEI/MEID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49392284/
[点击测试 https://authapi.applekuid.com](https://authapi.applekuid.com/) 目前国内有很多获取udid的方法,例如蒲公英 还有其他的网站
如何获取IMEI以适用于所有设备的通用方式定义 Java ME 设备 最佳答案 通常使用java.lang.System.getProperty()可以返回设备IMEI。 不幸的是,您需要用于获取 I
我想获取设备IMEI,但它总是显示日志: E/GoogleTagManager: Invalid macro: _gtm.loadEventEnabled 我已经添加了以下内容 apply plugi
我有一项为新话题加注星标的服务。我的任务是从此线程中检索 IMEI。我试过这样的事情: 主要内容: public class MainActivity extends AppCompatActivit
我正在做一个跨平台应用程序。使用 MoSynv IDE,我想检索一部智能手机的唯一 ID。是否可以使用 JavaScript 或 MoSync 的 API 检索电话号码或智能手机的 IMEI? 最佳答
我正在使用 Xamarin (C#) 编写一个 Android 应用程序,它需要从双 SIM 卡手机中的两张 SIM 卡获取 IMEI 和漫游状态。我找到了一些 Java 代码来做到这一点。但我不知道
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
有人知道如何检查有效的 IMEI 吗? 我在这个页面上找到了一个函数来检查:http://www.dotnetfunda.com/articles/article597-imeivalidator-i
我正在为双卡手机创建一个应用程序。该应用程序应该能够检测到用户正在通过其调用电话的 SIM 卡。它可以是去电或来电。我尝试使用 this tutorial 获取设备的两个 IMEI 编号.但它为第二个
如何在 flutter 中获取设备 IMEI我正在尝试使用以下插件获取唯一标识符: uuid_type: ^0.7.0-dev uuid: ^1.0.3 unique_identifier: ^0.0
这个问题在这里已经有了答案: How to get the device's IMEI/ESN programmatically in android? (22 个回答) 关闭8年前。 我想通过对我的
如何知道手机的 IMEI, 通过 HTML 网站 不使用PhoneGap? 最佳答案 在手机中,只有 native 应用程序可以访问 IMEI 号码,而网络应用程序则不能。因此,如果浏览器有足够的权限
我想构建一个 android 应用程序,当设备第一次启动时,它会检测 IMEI 和其他设备信息,并检查是否有 SIM 卡。如果有 SIM 卡,它会发送短信包含特定号码的 IMEI 和其他设备信息。 我
我正在制作一个测试工具,我有 imei 号码,但是否可以简单地或通过 NDK 更改 imei 号码。 谢谢 最佳答案 如何更改 IMEI 取决于硬件/系统,并且它是 - 至少在世界的(大部分)部分 -
我一直在寻找并找到this post在获取我的设备的电话号码时很有用。在我的主服务文件中,我有一个公共(public)静态变量,该变量设置为使用上述帖子中的方法找到的电话号码。 class MySer
好的,基本上我有一个 CSV 文件,其中包含电话列表及其 IMEI 编号,其中包含一个 15 位数字 - 当前格式如下“000000000000000”,我需要从 csv 中获取该列表并生成输出 IM
在我的应用程序中,我必须为我使用 TelephonyManager 的设备获取唯一编号。我可以在 android 手机中获取 imei 或 device id 但 android 平板电脑 (Xoom
这个问题在这里已经有了答案: Programmatically obtaining the IMEI or UDID of an iOS Device (1 个回答) 关闭 6 年前。 是否有一种算
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在为 imei 制作一个正则表达式,但我希望它可以选择使用多个 imei,例如123456789123456 这将被接受,如果通用,即,将在末尾,那么它也应该允许逗号,但只在第 15 位数字之后,
我是一名优秀的程序员,十分优秀!