if (ActivityCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) == PackageManager.PERMISSION_GRANTED) {
try {
Cursor temp = db.rawQuery("Select name from profile;", null);
temp.moveToFirst();
Toast.makeText(TrustedContacts.this, ""+c.getString(2), Toast.LENGTH_SHORT).show();
(SmsManager.getDefault()).sendTextMessage("0"+c.getString(2), null, "Automated SMS by Medical Alert App by " + temp.getString(0), null, null);
Toast.makeText(TrustedContacts.this, "SMS Sent!", Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
Toast.makeText(TrustedContacts.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
}
} else
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, 1);
以下是通过短信管理器发送短信的代码,但权限对话框没有显示出来。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.CALL_PHONE" />
我已经在清单文件中添加了权限。接收开机完成权限也是同样的情况。然而,拨打电话权限可以完美工作。无法确定问题所在。 Android Studio目标API为23,最低API为15。
CALL_PHONE
可以工作。你能发短信吗?我的意思是,你实际上获得了权限吗?顺便说一句,RECEIVE_BOOT_COMPLETED
不是危险权限,因此不需要在运行时请求。 - Mike M.TrustedContacts
继承自哪个类? - Mike M.<application>
标签之外吗?而且你在SEND_SMS
元素中拼写得完全正确吗?你可以尝试清理/重建你的项目。 - Mike M.