【问题标题】:I am not able to receive “android.provider.Telephony.SMS_RECEIVED” this broadcast in Android Oreo我无法在 Android Oreo 中接收“android.provider.Telephony.SMS_RECEIVED”这个广播
【发布时间】:2017-12-06 12:14:34
【问题描述】:

这是我的 Menifest 文件

<receiver
android:name="com.agribazaar.android.receivers.OTPReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>

这是我的广播接收器类

public class OTPReceiver extends BroadcastReceiver {
   @Override
public void onReceive(Context context, Intent intent) {        
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){

}
}

【问题讨论】:

  • 您是否将您的应用设为默认短信应用??
  • 不,它不是默认的短信应用。我只需要 otp 的短信。
  • 但是你应该让它成为默认的短信应用程序。否则将无法正常工作。它适用于 Kitkat、Lollipop、Marshallow 吗??
  • 是的,它在 kitkat、棒棒糖、棉花糖中运行良好

标签: android android-fragments android-broadcastreceiver android-8.0-oreo


【解决方案1】:

这为我解决了这个问题 - 我没有在运行时明确请求 android.Manifest.permission.RECEIVE_SMS 的权限。 在早期版本的 android 中它工作正常,但在 android O 设备中我遇到了问题。

int SMS_PERMISSION_REQ_CODE_SUBMIT = 101;
if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.RECEIVE_SMS)
                            != PackageManager.PERMISSION_GRANTED){

        ActivityCompat.requestPermissions(SmsActivity.this, new String[]{Manifest.permission.RECEIVE_SMS},
                                SMS_PERMISSION_REQ_CODE_SUBMIT);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多