您的位置:首页 > 其它

有关广播发送接收, 临近警告的问题

2017-01-02 02:40 330 查看
在做GPS开发,发现LocationManager有一个API , addProximityAlert(double latitude,double longitude,float radius,long expiration,PendingIntent intent);

    参数分别为经度纬度 半径, 到达指定区域之后 就触发intent对应的组件。

    我的做法是:

    Intent intent = new Intent(this,ProximituAlertReciever.class);

    //包装intent

    PendingIntent pi = pendingIntent.getBroadcast(this,-1,this,0);

    //添加临近警告

    locationManager.addProximityAlert(100,200,5000,-1,this);   

在ProximityAlertReviever中

public void onReceive(Context context, Intent intent) {

    boolean isEnter = intent.getBooleanExtra(LocationManager.KEY_PROXIMITY_ENTERING, false);

if(isEnter){

Toast.makeText(context, "您已经入指定区域",Toast.LENGTH_LONG).show();

}else {

 System.out.println("break");

 Toast.makeText(context, "您已离开指定区域", Toast.LENGTH_LONG).show();

}

}

静态注册 一切都非常顺利。。。。。那么 问题来了。

 我想让这个ProximityAlertReciever的广播接收器定义在MainActivity类内。因为如果接到广播了想调用里面的方法 ,

   我改用静态注册, 自己定义了setAction,注册成功了。但是GPS再进入指定区域 却不发送广播,这是为什么? 我怀疑我注册失败了,然后sendBroadRecievr ,发送广播成功,接收成功。 但是,进入临街区域就不自动发送广播。

   是不是我那个intent参数也要改啊? Intent intent = new Intent(this,ProximityAlertReciever.class) 仍然这么写对么?

    为什么独立出去的类就可以正常接收,写在Activity类内就不接收了呢。。。。。。。。。

    

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: