问题描述
- Android GPS临近警告不生效
-
MainActivity.javapackage 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 到底怎么用啊???