请求权限时应用程序崩溃
Posted
技术标签:
【中文标题】请求权限时应用程序崩溃【英文标题】:App crashes when requesting permission 【发布时间】:2017-07-05 08:12:47 【问题描述】:在运行SendSMS(string 1, string 2);
方法之前,我正在使用此代码请求短信权限
但我的应用程序在权限请求发生之前崩溃。
缺少什么?
final private int REQUEST_CODE = 101;
private void SendCreditSMS()
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.SEND_SMS)
!= PackageManager.PERMISSION_GRANTED)
ActivityCompat.requestPermissions(MainActivity.this,
new String[]Manifest.permission.SEND_SMS, REQUEST_CODE);
else
SendSMS("181", "رصيد");
【问题讨论】:
遇到错误请放logcat 分享错误信息的日志猫 错误日志在哪里? 发布您的堆栈跟踪..错误日志 在清单文件中添加 SEND_SMS 权限 【参考方案1】:尝试在您的 android 设备中转到应用程序管理器并选择您当前正在执行的应用程序。然后检查设备是否允许在您的设备中使用 send_sms 服务。
【讨论】:
【参考方案2】:问题可能是由于您将请求权限的活动声明为没有历史记录。解决问题删除
android:noHistory="true"
AndroidManifest 文件中关联活动的代码块中的行。要进行没有历史记录的活动,您可以使用其他呼叫,例如 finishAndRemoveTask()
。
【讨论】:
【参考方案3】:试试这个,
final private int REQUEST_CODE = 101;
private void SendCreditSMS()
if (Build.VERSION.SDK_INT >= 23)
if (ActivityCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.SEND_SMS)
!= PackageManager.PERMISSION_GRANTED)
ActivityCompat.requestPermissions(MainActivity.this,
new String[]android.Manifest.permission.SEND_SMS, REQUEST_CODE);
else
SendSMS("181", "رصيد");
else
SendSMS("181", "رصيد");
【讨论】:
我不确定您在此处更改了什么? 你正在使用 Manifest.permission.SEND_SMS 。尝试使用 android.Manifest.permission.SEND_SMS以上是关于请求权限时应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章