judian_android_6,android studio - Broadcast receiver to read incoming sms - Stack Overflow

My app to read incoming sms using broadcast receiver is working fine in many mobiles but not working in samsung j5 mobile. Can you give me proper solution for that problem.

My MainActivity.java is

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(final Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

MyReceiver.bindListener(new SmsListener.OTPListener() {

@Override

public void messageReceived(String messageText, String messageSender) {

Toast.makeText(MainActivity.this,"message is "+messageText+ " and sender is "+messageSender ,Toast.LENGTH_SHORT).show();

}

});

}

}

MyReceiver.java

public class MyReceiver extends BroadcastReceiver {

private static SmsListener.OTPListener mListener;

@Override

public void onReceive(Context context, Intent intent) {

if(intent.getAction().equals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION)) {

Bundle data = intent.getExtras();

Object[] pdus = new Object[0];

if(data != null)

{

pdus = (Object[]) data.get("pdus");

}

if(pdus != null)

{

for(Object pdu : pdus ){

SmsMessage smsMessage = SmsMessage.createFromPdu((byte[])pdu);

String sender = smsMessage.getDisplayOriginatingAddress();

String messageBody = smsMessage.getMessageBody();

if (mListener!=null)

{

mListener.messageReceived(messageBody, sender);

break;

}

}

}

}

public static void bindListener(SmsListener.OTPListener listener) {

mListener = listener;

}

public static void unbindListener() {

mListener = null;

}

}

SmsListener.java

public interface SmsListener {

interface OTPListener{

void messageReceived(String messageText,String messageSender);

}

}

AndroidManifest.xml

xmlns:tools="http://schemas.android.com/tools"

package="com.example.aaa.aaa">

tools:ignore="ProtectedPermissions" />

android:allowBackup="true"

android:icon="@drawable/b"

android:label="@string/app_name"

android:roundIcon="@drawable/b"

android:supportsRtl="true"

android:theme="@style/AppTheme">

android:name=".MyReceiver"

android:enabled="true"

android:exported="true"

android:permission="android.permission.BROADCAST_SMS"

>

This is my application code. I want to toast the message and sender when a new message is arrived (even app is killed or destroyed), but in samsung j5 mobile, nothing happened.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值