博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android GPS应用:临近警告
阅读量:5955 次
发布时间:2019-06-19

本文共 1956 字,大约阅读时间需要 6 分钟。

前面介绍过LocationManager有一个addProximityAlert(double latitude,double longitude,float radius,long expiration,PendingIntent intent)方法,该方法可用于添加临近警告。其参数说明如下:

latitude:指定固定点的经度。

longitude:指定固定点的纬度。

radius:指定半径长度。

expiration:指定经过多少毫秒后该临近警告就会过期失效。-1表示永不过期。

intent:该参数指定临近该固定点时触发该intent对应的组件.

下面这个小程序可以检测手机是否进入和离开了指定点的指定范围内。代码如下:

Activity:

package com.home.proximityalert;import com.home.receiver.ProximityAlertReceiver;import android.app.Activity;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.location.LocationManager;import android.os.Bundle;public class ProximityAlertTestActivity extends Activity {	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);		// 获取系统LocationManager服务		LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);		// 定义成都市成华区的大致经度、纬度		double longitude = 104.10;		double latitude = 30.67;		// 定义半径(5公里)		float radius = 5000;		// 定义Intent		Intent intent = new Intent(this, ProximityAlertReceiver.class);		// 将Intent包装成PendingIntent对象		PendingIntent pi = PendingIntent.getBroadcast(this, -1, intent, 0);		// 添加临近警告		locationManager.addProximityAlert(latitude, longitude, radius, -1, pi);	}}

BroadcastReceiver(ProximityAlertReceiver):

package com.home.receiver;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.location.LocationManager;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);		if (isEnter) {			// 给出提示信息			Toast.makeText(context, "您已经进入成都市成华区", Toast.LENGTH_LONG).show();		} else {			// 给出提示信息			Toast.makeText(context, "您已经离开成都市成华区", Toast.LENGTH_LONG).show();		}	}}

权限:

 

 

转载地址:http://byexx.baihongyu.com/

你可能感兴趣的文章
01-HTML基础与进阶-day3-录像236
查看>>
ssh 免密码登录
查看>>
strcpy函数的C/C++实现
查看>>
CSS浏览器兼容问题
查看>>
-Xlint:deprecation
查看>>
forEach与map
查看>>
concurrent.futures 使用及解析
查看>>
python协程
查看>>
面向对象的三大特性
查看>>
前台之boostrap
查看>>
项目 11 部署与运行
查看>>
绘制折线图
查看>>
django项目基础
查看>>
Linux 基本权限管理
查看>>
用css去除chrome、safari等webikt内核浏览器对控件默认样式
查看>>
PHP —— 识别运算符实现逻辑比较
查看>>
Powershell都有哪些好用的技能?
查看>>
【软工】第一次阅读作业
查看>>
权限管理系统 mysql 数据脚本
查看>>
Javascript中对空string调用split返回不是空数组
查看>>