【问题标题】:java.lang.SecurityException: in android 8 while sending smsjava.lang.SecurityException:在 android 8 中发送短信时
【发布时间】:2018-02-15 17:05:13
【问题描述】:

我从 oreo 版本发送 SMS 时遇到安全问题,它在另一个 android 版本中正常工作。在下面一行出现错误。

 sms.sendTextMessage(phoneNumber, null,message, sentPI, deliveredPI);

报告 1

> java.lang.SecurityException:    at android.os.Parcel.readException
> (Parcel.java:1942)   at android.os.Parcel.readException
> (Parcel.java:1888)   at
> com.android.internal.telephony.ISms$Stub$Proxy.sendTextForSubscriber
> (ISms.java:955)   at
> android.telephony.SmsManager.sendTextMessageInternal
> (SmsManager.java:372)   at
> android.telephony.SmsManager.sendTextMessage (SmsManager.java:355)  
> at com.moba.attendanceapp.RegistrationandVerify.sendSMS
> (RegistrationandVerify.java:172)   at
> com.moba.attendanceapp.RegistrationandVerify.onViewClicked
> (RegistrationandVerify.java:92)   at
> com.moba.attendanceapp.RegistrationandVerify$$ViewInjector$1.doClick
> (RegistrationandVerify$$ViewInjector.java:22)   at
> butterknife.internal.DebouncingOnClickListener.onClick
> (DebouncingOnClickListener.java:22)   at
> android.view.View.performClick (View.java:6267)   at
> android.view.View$PerformClick.run (View.java:24763)   at
> android.os.Handler.handleCallback (Handler.java:789)   at
> android.os.Handler.dispatchMessage (Handler.java:98)   at
> android.os.Looper.loop (Looper.java:164)   at
> android.app.ActivityThread.main (ActivityThread.java:6548)   at
> java.lang.reflect.Method.invoke (Native Method)   at
> com.android.internal.os.Zygote$MethodAndArgsCaller.run
> (Zygote.java:240)   at com.android.internal.os.ZygoteInit.main
> (ZygoteInit.java:767)

【问题讨论】:

  • 在此处发布日志
  • 一定要添加短信权限
  • @Tigo2018 我已经用日志编辑了我的问题,这些日志来自 Play 商店,因为我的应用程序在 Play 商店中,我正面临这个问题。
  • 是的,@Tigo2018 说,一定要在清单中添加短信权限。还要确保您在 Android Oreo 中将其授予为 RuntimePermissions。您可以检查设置->应用程序->您的应用程序->权限。短信需要激活。如果它已经在野外,请确保检查您的应用程序中的权限,并告诉用户如果他不授予此权限,它就不起作用。您可以考虑关闭您的应用
  • 是的,我已经添加了权限,否则它也会在棉花糖中给出错误。

标签: android android-8.0-oreo


【解决方案1】:

正确检查您在清单文件中添加的权限。 其次检查您的接收器的意图过滤器是否已正确添加。

【讨论】:

    【解决方案2】:

    Manifest.xml中添加这些权限

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

    然后以同样的方式请求他们:

    final static int REQUESTCODE_PERMISSION_SMS = 301;
    
    if (Build.VERSION.SDK_INT >= 28) {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS, Manifest.permission.READ_PHONE_STATE_PERMISSION}, REQUESTCODE_PERMISSION_SMS);
    } else {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, REQUESTCODE_PERMISSION_SMS);
    }
    

    【讨论】:

    • 什么是READ_PHONE_STATE_PERMISSION
    猜你喜欢
    • 2017-05-14
    • 1970-01-01
    • 2011-06-04
    • 2014-08-07
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多