MainActivity.java
package com.example.proximitytest;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.Menu;
public class MainActivity extends Activity {
LocationManager lm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lm=(LocationManager) getSystemService(Context.LOCATION_SERVICE);
//定义经纬度
double longitude=104.10;
double latitude=30.67;
//定义半径
float radius=5000;
//定义Intent
Intent intent=new Intent(this,ProximityAlertReceiver.class);
//将Intent包装成PendingIntent
PendingIntent pi=PendingIntent.getBroadcast(this, -1, intent, 0);
//添加临近警告
/**
* 参数说明
* 维度
* 经度
* 半径
* 过期时间 -1永不过期
*/
lm.addProximityAlert(latitude, longitude, radius, -1, pi);
}
}
ProximityAlertReceiver.java
package com.example.proximitytest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.util.Log;
import android.widget.Toast;
public class ProximityAlertReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
//获取是否进入指定区域
boolean isEnter=intent.getBooleanExtra(LocationManager.KEY_PROXIMITY_ENTERING, false);
Log.e("isEnter", isEnter+"");
if(isEnter){
Toast.makeText(context, "您已经进入到奇虎360", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(context, "您已经离开奇虎360", Toast.LENGTH_LONG).show();
}
}
}
权限也加了,但不管在模拟器还是手机当中,都出不来Toast
楼主解决了吗?我也把receiver注册了,但是出不了效果。。不知道在哪下手了
我遇到同样的问题,就是《疯狂Android讲义》书里面16章的代码,虚拟机上没有效果,不知道什么原因???addProximityAlert 到底怎么用啊???