gpt4 book ai didi

android - 在android中接收短信-意外停止

转载 作者:行者123 更新时间:2023-11-30 02:59:16 25 4
gpt4 key购买 nike

你好 friend 这是我用来接收短信的代码。它在收到短信后收到短信,显示 receivesms 已停止。谁能帮帮我。

ReceivesmsActivity.java

                      public class ReceivesmsActivity extends Activity {
public TextView info;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_receivesms);

info = (TextView) findViewById(R.id.info);
}

public class Receivesms extends BroadcastReceiver{
@Override public void onReceive(Context context, Intent intent) {
try{
Bundle pudsBundle = intent.getExtras();
Object[] pdus = (Object[]) pudsBundle.get("pdus");
SmsMessage messages =SmsMessage.createFromPdu((byte[]) pdus[0]);
info.setText(messages.getMessageBody().toString());
}catch(Exception e){
Toast.makeText(context,e.toString(),Toast.LENGTH_LONG).show();
}
}
}

这是这个应用程序的 list 文件

list

                     <activity

android:name="com.receivesms.ReceivesmsActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<receiver android:name=".Receivesms">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>

最佳答案

可能需要这样做:

  public class ReceivesmsActivity extends Activity implements Handler.Callback {
public TextView info;
public Handler handler;
private static final int SUCCESS = 0;
private static final int FAILED = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_receivesms);

info = (TextView) findViewById(R.id.info);
handler = ReceivesmsActivity.this;
}


@Override
public boolean handleMessage(Message message){

switch(message.what){

case SUCCESS:
udpateUI(message);
break;
case FAILED:

// Maybe toast the user that you have not been able to receive or update UI
break;

}
return true;
}

// Updates the UI from the Activity, not the Broadcast Receiver
public void updateUI(Message msg){
info.setText(((SmsMessage) msg.obj).obtainMessageBody().toString());

}


// Since this is a service its not run on the UI thread, so can't update UI
public class Receivesms extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
try{
Bundle pudsBundle = intent.getExtras();
Object[] pdus = (Object[]) pudsBundle.get("pdus");
SmsMessage messages =SmsMessage.createFromPdu((byte[]) pdus[0]);

// the idea is get a reference to your activity
// then send a message back to the Handler to update the UI
handler.obtainMessage(SUCCESS, messages).sendToTarget();

}catch(Exception e){
Toast.makeText(context,e.toString(),Toast.LENGTH_LONG).show();
}
}
}

关于android - 在android中接收短信-意外停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22792477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com