当前位置: 首页 > 知识库问答 >
问题:

createFromPdu((Byte[]))SMSObject[i])不能强制转换为BroadCastReceiver中的Byte[]

黄彬
2023-03-14

我的目标是需要从BroadcastReceiver获得SMS的详细信息,在获得SMS后,我将这些信息存储在对象中,后来无法将其转换为字节存储在字符串变量中...这是我的代码,我对java和android都是新手,请帮助我

    public void onReceive(Context context, Intent intent) {
    String Orgi_Phonenumber = "";
    final Bundle bundle = intent.getExtras();
    if (bundle != null) {
        Log.i("MyMessage", "start reading message information");
        Object[] smsobject = new Object[] { (Object) bundle.get("pdus") };
        for (int i = 0; i < smsobject.length; i++) {
            SmsMessage CurrentMessage = SmsMessage
                    .createFromPdu((byte[]) smsobject[i]);
            Orgi_Phonenumber += CurrentMessage.getOriginatingAddress();
        }

    }
}

线以下是造成问题的原因

SmsMessage CurrentMessage = SmsMessage.createFromPdu((byte[]) smsobject[i]);

错误为java.lang.RuntimeException:无法启动接收器com.example.receivesms.incomingsms:java.lang.ClassCastException:java.lang.Object[]无法强制转换为byte[]

请解释一下造成上述错误的原因是什么

共有1个答案

周学义
2023-03-14

试试看

Object[] smsobject = (Object[]} bundle.get("pdus");
 类似资料: