1.创建服务,在服务中开启时得到手机的经纬度,并存入到sp中
2.在防盗系统的短信广播中,创建开启服务的Intent
--------------------------------------------------------------------------------
1.创建服务,在服务中开启时得到手机的经纬度,并存入到sp中
public
class
LocationService
extends
Service {
private
MyListener
listener
;
private
LocationManager
lm
;
private
SharedPreferences
sp
;
@Override
public
IBinder onBind(Intent intent) {
return
null
;
}
/**
* 服务创建时
*/
@Override
public
void
onCreate() {
super
.onCreate();
lm
= (LocationManager) getSystemService(
LOCATION_SERVICE
);
Criteria criteria =
new
Criteria ();
criteria.setAccuracy(Criteria.
ACCURACY_FINE
);
criteria.setAltitudeRequired(
true
);
criteria.setCostAllowed(
true
);
criteria.setPowerRequirement(Criteria.
POWER_HIGH
);
sp
= getSharedPreferences(
"config"
,
MODE_PRIVATE
);
String provider =
lm
.getBestProvider(criteria,
true
);
System.
out
.println(
"最好的位置提供者:"
+provider);
listener
=
new
MyListener();
lm
.requestLocationUpdates( provider, 0, 0,
listener
);
}
private
class
MyListener
implements
LocationListener{
//当位置变化的时候调用的方法.
@Override
public
void
onLocationChanged(Location location) {
String accuracy =
"jqd:"
+location.getAccuracy();
//精确度
String longitude =
"jd:"
+location.getLongitude();
//经度
String latitude =
"wd:"
+location.getLatitude();
//纬度
String lastLocation = longitude+
"\n"
+latitude+
"\n"
+accuracy;
Editor editor =
sp
.edit();
editor.putString(
"lastLocation"
, lastLocation);
//将手机经纬度存储到 sp中
editor.commit();
}
@Override
public
void
onStatusChanged(String provider,
int
status, Bundle extras) {
}
@Override
public
void
onProviderEnabled(String provider) {
}
@Override
public
void
onProviderDisabled(String provider) {
}
}
@Override
public
void
onDestroy() {
lm
.removeUpdates(
listener
);
listener
=
null
;
super
.onDestroy();
}
}
-------------------------------------------------------------------------------------
2.在防盗系统的短信广播中,创建开启服务的Intent
public
class
SmsReceiver
extends
BroadcastReceiver {
private
static
final
String
TAG
=
"SmsReceiver"
;
@Override
public
void
onReceive(Context context, Intent intent) {
Object[] objs = (Object[]) intent.getExtras().get(
"pdus"
);
//获取短信
for
(Object obj : objs) {
SmsMessage message = SmsMessage. createFromPdu((
byte
[]) obj);
String sender = message.getOriginatingAddress();
String body = message.getMessageBody();
if
(
"#*location*#"
.equals(body)){
Log. i(
TAG
,
"获取位置手机位置.."
);
Intent i =
new
Intent(context,LocationService.
class
);
context.startService(i);
SharedPreferences sp = context.getSharedPreferences(
"config"
, Context.
MODE_PRIVATE
);
String lastLocation = sp.getString(
"lastLocation"
,
""
);
if
(!TextUtils. isEmpty(lastLocation)){
smsManager. sendTextMessage(sender,
null
, lastLocation,
null
,
null
);
}
abortBroadcast();
}
else
if
(
"#*alarm*#"
.equals(body)){
Log. i(
TAG
,
"播放警报铃声"
);
MediaPlayer mediaPlayer = MediaPlayer.create(context,R.raw.
bbk
);
mediaPlayer.setVolume(1.0f, 1.0f);
//player.setLooping(true); //一直都播放下去
mediaPlayer.start();
abortBroadcast();
}
else
if
(
"#*wipedata*#"
.equals(body)){
Log. i(
TAG
,
"清除数据"
);
abortBroadcast();
}
else
if
(
"#*lockscreen*#"
.equals(body)){
Log. i(
TAG
,
"远程锁屏"
);
abortBroadcast();
}
}
}
}