我在运行方法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", "رصيد");
}
}
答案 0 :(得分:0)
试试这个,
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", "رصيد");
}
}
答案 1 :(得分:0)
问题可能是由于您声明了请求权限的活动而没有历史记录。解决问题删除
android:noHistory="true"
来自AndroidManifest文件中相关活动的代码块的行。要拥有没有历史记录的活动,您可以使用其他来电,例如finishAndRemoveTask()
。
答案 2 :(得分:0)
尝试访问Android设备中的应用程序管理器,然后选择您当前正在执行的应用程序。然后检查设备是否给出了在设备中使用send_sms服务的权限。