package com.az.SmsGetLocation;
import java.util.ArrayList;
import com.az.TimingUpGps.AlarmService;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.telephony.SmsMessage;
public class SMSBroadcastRec extends BroadcastReceiver{
private SmsMessage msg;
private String phoneAddress;
private Context context;
@Override
public void onReceive(Context context, Intent intent) {
this.context=context;
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
Bundle bundle=intent.getExtras();
Object[] objs=(Object[]) bundle.get("pdus");
for(Object ob:objs){
byte[] pdu=(byte[])ob;
msg=SmsMessage.createFromPdu(pdu);
phoneAddress=msg.getDisplayOriginatingAddress();
if(msg.getDisplayMessageBody().contains("gps")){
if(CheckPhoneNumvAlidity()==true){
abortBroadcast(); //���ض��Ų���Broadcast���·�
Intent SmsIntent = new Intent(this.context,SMSService.class);
SmsIntent.putExtra("phoneAddress", phoneAddress);
this.context.startService(SmsIntent);
}
}
}
}
}
private boolean CheckPhoneNumvAlidity()//ע��˴�����̫��ʱ
{
SQLiteDatabase sqldb=this.context.openOrCreateDatabase("emergencyphb.db",1, null);
Cursor cur = sqldb.query("emerphb",new String[]{"name","phonenum"},null,null,null,null,null);
ArrayList<String> ar=new ArrayList<String>();
//�Ƿ��ǽ�����ϵ�����ݿⱣ��ĵ绰
boolean availability = false;
//���ݿ��е�
while(cur.moveToNext()){
ar.add(cur.getString(cur.getColumnIndex("name")));
//Log.i("life",cur.getString(cur.getColumnIndex("name")));
String s=cur.getString(cur.getColumnIndex("phonenum"));
if(s.contains(phoneAddress)||("+86"+s).contains(phoneAddress)){
availability=true;
}
}
cur.close();
sqldb.close();
return availability;
}
}