Lu Hsiang 2019-05-17 10:07 采纳率: 0%
浏览 764

有没有高手!!!可以使用百度地图API实现位置提醒的功能!!!

急求!!!可私聊!!
类似于百度地图官方给的效果图一样
自定义经纬度设置一个提醒点,提醒点半径内的圆形区域为提醒位置,自己当前位置进入提醒位置,移动设备震动
以下代码只能实现当前位置的位置提醒
/***

  • 实例演示位置提醒功能,由于定位本身具有空间性,所以设置当前点为提醒点,用户可以通过
  • 坐标拾取系统来自定义提醒点 http://api.map.baidu.com/lbsapi/getpoint/index.html
  • @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();
    }
    }
    }


  • 写回答

1条回答 默认 最新

  • ??�???18120082008 2020-02-09 15:00
    关注

    苹果手机可以,就是位置提醒,在《提醒事项》--《在指定位置提醒我》,就目前实测,只有这个好用,安卓目前没有发现哪个手机好用,华为有这个功能,但是半径太小,而且,经常失灵,如果有哪位大神有好的安卓app或者手机推荐,也告诉我一下,感谢!

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘