急求!!!可私聊!!
类似于百度地图官方给的效果图一样
自定义经纬度设置一个提醒点,提醒点半径内的圆形区域为提醒位置,自己当前位置进入提醒位置,移动设备震动
以下代码只能实现当前位置的位置提醒
/***
@author baidu
*
*/
public class NotifyActivity extends Activity{
private Button startNotify;
private Vibrator mVibrator;
private LocationClient mLocationClient;
private NotiftLocationListener listener;
private double longtitude,latitude;
private NotifyLister mNotifyLister;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView( R.layout.notify);
listener = new NotiftLocationListener();
mVibrator =(Vibrator)getApplicationContext().getSystemService(Service.VIBRATOR_SERVICE);
startNotify = (Button)findViewById(R.id.notifystart);
mLocationClient = new LocationClient(this);
mLocationClient.registerLocationListener(listener);
mNotifyLister = new NotifyLister();
mLocationClient.registerNotify(mNotifyLister);
startNotify.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(startNotify.getText().toString().equals("开启位置提醒")){
mLocationClient.start();
startNotify.setText("关闭位置提醒");
}else{
if(mNotifyLister!=null){
mLocationClient.removeNotifyEvent(mNotifyLister);
startNotify.setText("开启位置提醒");
}
}
}
});
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
mLocationClient.removeNotifyEvent(mNotifyLister);
mLocationClient.unRegisterLocationListener(listener);
mLocationClient.stop();
}
@Override
protected void onDestroy() {
super.onDestroy();
mLocationClient.removeNotifyEvent(mNotifyLister);
mLocationClient.unRegisterLocationListener(listener);
mLocationClient.stop();
}
@SuppressLint("HandlerLeak")
private Handler notifyHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
mNotifyLister.SetNotifyLocation(latitude,longtitude, 3000,mLocationClient.getLocOption().getCoorType());//4个参数代表要位置提醒的点的坐标,具体含义依次为:纬度,经度,距离范围,坐标系类型(gcj02,gps,bd09,bd09ll)
}
};
public class NotiftLocationListener extends BDAbstractLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
//Receive Location
longtitude = location.getLongitude();
latitude = location.getLatitude();
notifyHandler.sendEmptyMessage(0);
}
}
public class NotifyLister extends BDNotifyListener{
public void onNotify(BDLocation mlocation, float distance){
mVibrator.vibrate(1000);//振动提醒已到设定位置附近
Toast.makeText(NotifyActivity.this, "震动提醒", Toast.LENGTH_SHORT).show();
}
}
}
苹果手机可以,就是位置提醒,在《提醒事项》--《在指定位置提醒我》,就目前实测,只有这个好用,安卓目前没有发现哪个手机好用,华为有这个功能,但是半径太小,而且,经常失灵,如果有哪位大神有好的安卓app或者手机推荐,也告诉我一下,感谢!