繁体   English   中英

短信权限问题

[英]Issue with SMS permissions

这是我的问题。 我需要编写一个在特定时间发送短信的应用程序。 那时用户可以离开电话。

我读过和尝试过的所有关于短信权限的例子都有通过弹出窗口向用户寻求授权的效果(它说操作可能会收取费用等)。 如前所述,用户可以离开手机,因此未经用户授权,短信无法在所需时间发送。

有没有办法先获得授权,避免在发送时重新询问?

清单中声明的​​权限:

<uses-permission android:name="android.permission.SEND_SMS" />

发送的短信是

SmsManager smsMgr = SmsManager.getDefault();
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent("SMS_SENT"), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent("SMS_DELIVERED"), 0);
smsMgr.sendTextMessage(Number, null, "txt", sentPI, deliveredPI);

谢谢大家

您需要在运行时获得 android 6+ 的许可。 做这个

    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       int permissionCheck = ContextCompat.checkSelfPermission(RegisterActivity.this, Manifest.permission.SEND_SM);
                    if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
                        ActivityCompat.requestPermissions(RegisterActivity.this, new String[]{Manifest.permission.SEND_SM}, 1);
                    } else {
                        sendSMS();
                    }
    }
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) {
        switch (requestCode) {
        case 1: {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                sendSMS();
            } else {
                finish();
            }
        }
        default:
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM