这是我的第一个问题:
我正在尝试配置将从数据库和网络服务提供商提供的接近警报;但我在配置简单的接近警报进行测试时遇到问题。我设法创建了警报,但它从未被触发,我现在只在模拟器中尝试,不知道是否需要一些额外的代码来触发警报。
我在某处读到禁用 GPS 提供商,因此可以使用网络提供商来触发模拟器上的警报。
我的代码如下所示:
接近意图声明
private String proximityIntentAction = new String("gpsdelivery.gpship.getLocation.GPS_PROXIMITY_ALERT");
在设置警报参数的 onStart() 内部
IntentFilter intentFilter = new IntentFilter(proximityIntentAction);
registerReceiver(new ProximityAlert(), intentFilter);
setProximityAlert(45.150344, 9.999815, -1);
创建警报的接近警报功能
private void setProximityAlert(double lat, double lon, int requestCode)
{
// 100 meter radius
float radius = 100f;
// Expiration is 10 Minutes
long expiration = 600000;
LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Intent intent = new Intent(proximityIntentAction);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), requestCode, intent, PendingIntent.FLAG_CANCEL_CURRENT);
locManager.addProximityAlert(lat, lon, radius, expiration, pendingIntent);
}
最后是我与广播接收器的接近警报类
public class ProximityAlert extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Log.v("SomeTag","Proximity alert received");
}
}
请让我知道我错过了什么或我做错了什么。在此先感谢,任何源代码将不胜感激。