我正在尋找一個應用程序,截取短信給予某些參數。截至目前,我有一個註冊的切換按鈕以及SMSReceiver類正在工作,但我無法找到一種方法,只有在啓用切換功能時SMSReceiver才能工作,並且禁用切換功能時SMSReceiver停止工作。如何從撥動按鈕撥打電話SMSReceiver類
Main.Java
公共類主要擴展活動{
Intent in = new Intent();
IntentFilter intentFilter;
String drivingMessage;
String originAddress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intentFilter = new IntentFilter();
intentFilter.addAction("SMS_RECEIVED_ACTION");
}
BroadcastReceiver intentReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent){
originAddress = intent.getExtras().getString("sms");
Toast.makeText(context, originAddress, Toast.LENGTH_LONG).show();
}
};
@Override
protected void onResume(){
registerReceiver(intentReceiver, intentFilter);
super.onResume();
}
@Override
protected void onPause(){
unregisterReceiver(intentReceiver);
super.onPause();
}
public void serviceEnabled(View view){
ToggleButton tB = (ToggleButton) findViewById(R.id.serviceToggle);
boolean on = tB.isChecked();
if(on){
Toast.makeText(this, " toggle is on ", Toast.LENGTH_SHORT).show();
} else{
Toast.makeText(this, " toggle is off " , Toast.LENGTH_SHORT).show();
}
}
}
SMSReceiver.Java
public class SMSReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent){
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "SMS From";
if(bundle != null){
Object [] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for(int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
if (i == 0){
str += msgs[i].getOriginatingAddress();
}
}
Intent broadcastIntent = new Intent();
broadcastIntent.setAction("SMS_RECEIVED_ACTION");
broadcastIntent.putExtra("sms", str);
context.sendBroadcast(broadcastIntent);
this.abortBroadcast();
}
}
任何幫助是極大的讚賞,因爲這是一個項目一類。先謝謝你!
這個作品我離開了我的else語句中的註銷行。謝謝,你真的救了我和我的項目哈哈! – 2014-12-05 05:14:15