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

本文共 2013 字,大约阅读时间需要 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();		}	}}

权限:

 

 

转载于:https://www.cnblogs.com/dyllove98/p/3202738.html

你可能感兴趣的文章
Qt之模拟时钟
查看>>
第一次接触安卓--记于2015.8.21
查看>>
(转)在分层架构下寻找java web漏洞
查看>>
mac下多线程实现处理
查看>>
C++ ifstream ofstream
查看>>
跟初学者学习IbatisNet第四篇
查看>>
seL4环境配置
查看>>
Git报错:insufficient permission for adding an object to repository database .git/objects
查看>>
ajax跨域,携带cookie
查看>>
BZOJ 1600: [Usaco2008 Oct]建造栅栏( dp )
查看>>
洛谷 CF937A Olympiad
查看>>
Codeforces Round #445 C. Petya and Catacombs【思维/题意】
查看>>
用MATLAB同时作多幅图
查看>>
python中map的排序以及取出map中取最大最小值
查看>>
ROR 第一章 从零到部署--第一个程序
查看>>
<form>标签
查看>>
vue去掉地址栏# 方法
查看>>
Lambda03 方法引用、类型判断、变量引用
查看>>
was集群下基于接口分布式架构和开发经验谈
查看>>
MySQL学习——MySQL数据库概述与基础
查看>>