zoukankan      html  css  js  c++  java
  • Android GPS应用:临近警告

    前面介绍过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();
    		}
    	}
    
    }
    

    权限:

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>



     

  • 相关阅读:
    Webservice或WebAPi Post类型传参,类对象格式转换
    WebService 客户端上传图片,服务器端接收图片并保存到本地
    WebAPI 本地调试
    Quartz 计时器使用之 给主线程窗体控件赋值方法
    微信APP支付
    微信H5支付
    微信JSAPI支付
    微信支付
    循环table 示例
    前台向后台传数组处理
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3202738.html
Copyright © 2011-2022 走看看