Java Code Examples for com.amap.api.location.AMapLocationClientOption#setLocationMode()

The following examples show how to use com.amap.api.location.AMapLocationClientOption#setLocationMode() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: FindMapAroundAty.java    From myapplication with Apache License 2.0 6 votes vote down vote up
private void initLoc() {
    //初始化定位
    mLocationClient = new AMapLocationClient(getApplicationContext());
    //设置定位回调监听
    mLocationClient.setLocationListener(this);
    //初始化定位参数
    mLocationOption = new AMapLocationClientOption();
    //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
    mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    //设置是否返回地址信息(默认返回地址信息)
    mLocationOption.setNeedAddress(true);
    //设置是否只定位一次,默认为false
    mLocationOption.setOnceLocation(true);
    //设置是否强制刷新WIFI,默认为强制刷新
    mLocationOption.setWifiActiveScan(true);
    //设置是否允许模拟位置,默认为false,不允许模拟位置
    mLocationOption.setMockEnable(false);
    //设置定位间隔,单位毫秒,默认为2000ms
    mLocationOption.setInterval(2000);
    //给定位客户端对象设置定位参数
    mLocationClient.setLocationOption(mLocationOption);
    //启动定位
    mLocationClient.startLocation();
}
 
Example 2
Source File: MeEditorAreaAty.java    From myapplication with Apache License 2.0 6 votes vote down vote up
/**
 * 设置监听
 */
private void setUpListener() {
    titleLeftImv.setOnClickListener(this);
    currentAreaRout.setOnClickListener(this);

    fullAreaRout.setOnClickListener(this);
    // 添加change事件
    mViewProvince.addChangingListener(this);
    // 添加change事件
    mViewCity.addChangingListener(this);
    // 添加change事件
    mViewDistrict.addChangingListener(this);
    // 添加onclick事件
    mConfirmTv.setOnClickListener(this);

    // 设置高德地图
    aMapLocationClient = new AMapLocationClient(this.getApplicationContext());
    aMapLocationClientOption = new AMapLocationClientOption();
    aMapLocationClientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    aMapLocationClientOption.setOnceLocation(true);
    aMapLocationClient.setLocationListener(this);
}
 
Example 3
Source File: AMapLocationService.java    From GeometricWeather with GNU Lesser General Public License v3.0 6 votes vote down vote up
@Override
public void requestLocation(Context context, @NonNull LocationCallback callback){
    this.callback = callback;

    AMapLocationClientOption option = new AMapLocationClientOption();
    option.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);
    option.setOnceLocation(true);
    option.setOnceLocationLatest(true);
    option.setNeedAddress(true);
    option.setMockEnable(false);
    option.setLocationCacheEnable(false);
    client = new AMapLocationClient(context.getApplicationContext());
    client.setLocationOption(option);
    client.setLocationListener(listener);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        manager.createNotificationChannel(getLocationNotificationChannel(context));
        client.enableBackgroundLocation(
                GeometricWeather.NOTIFICATION_ID_LOCATION,
                getLocationNotification(context));
    }
    client.startLocation();
}
 
Example 4
Source File: MainActivity.java    From YourWeather with Apache License 2.0 6 votes vote down vote up
/**
 * 初始化高德地图定位参数
 */
private void initLocation() {
    mLocationClient=new AMapLocationClient(getApplicationContext());
    mLocationClient.setLocationListener(mLocationListener);
    //初始化定位参数
    mLocationOption = new AMapLocationClientOption();
    //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
    mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    //设置是否返回地址信息(默认返回地址信息)
    mLocationOption.setNeedAddress(true);
    //设置是否只定位一次,默认为false
    mLocationOption.setOnceLocation(false);
    //设置是否强制刷新WIFI,默认为强制刷新
    mLocationOption.setWifiScan(true);
    //设置是否允许模拟位置,默认为false,不允许模拟位置
    mLocationOption.setMockEnable(false);
    //设置定位间隔,单位毫秒,默认为2000ms
    mLocationOption.setInterval(2000);
    //给定位客户端对象设置定位参数
    mLocationClient.setLocationOption(mLocationOption);
    // 启动定位
    mLocationClient.startLocation();
}
 
Example 5
Source File: LocationManager.java    From TestChat with Apache License 2.0 6 votes vote down vote up
private AMapLocationClientOption getDefaultOption() {
        LogUtil.e("获取定位选项");
        AMapLocationClientOption option = new AMapLocationClientOption();
//          定位模式:1 高精度、2仅设备、3仅网络
// 设置高精度模式
        option.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);
//                设置是否优先使用GPS
        option.setGpsFirst(false);
//                连接超时3秒
        option.setHttpTimeOut(3000);
//                设置定位间隔60秒
        option.setInterval(60000);
//                设置是否返回地址,默认返回
        option.setNeedAddress(true);
//                设置是否单次定位
        option.setOnceLocation(false);
        //可选,设置是否等待wifi刷新,默认为false.如果设置为true,会自动变为单次定位,持续定位时不要使用
        option.setOnceLocationLatest(false);
//                设置网络请求协议
        AMapLocationClientOption.setLocationProtocol(AMapLocationClientOption.AMapLocationProtocol.HTTP);
//                设置是否使用传感器,不使用
        option.setSensorEnable(false);
        return option;
    }
 
Example 6
Source File: ClientOptionFactory.java    From RxLocation with Apache License 2.0 6 votes vote down vote up
/**
 * @return Default AMapLocationClientOption
 * 详情请查看{ http://amappc.cn-hangzhou.oss-pub.aliyun-inc.com/lbs/static/unzip/Android_Location_Doc/index.html }
 */
private AMapLocationClientOption getAMapDefaultOption() {
    final AMapLocationClientOption mOption = new AMapLocationClientOption();
    mOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    mOption.setGpsFirst(false);
    mOption.setHttpTimeOut(30000);
    mOption.setInterval(2000);
    mOption.setNeedAddress(true);
    mOption.setOnceLocation(false);
    mOption.setOnceLocationLatest(false);
    AMapLocationClientOption.setLocationProtocol(AMapLocationClientOption.AMapLocationProtocol.HTTP);
    mOption.setSensorEnable(false);
    mOption.setWifiScan(true);
    mOption.setLocationCacheEnable(true);
    return mOption;
}
 
Example 7
Source File: NewLocationManager.java    From NewFastFrame with Apache License 2.0 6 votes vote down vote up
private AMapLocationClientOption getDefaultOption() {
        CommonLogger.e("获取定位选项");
        AMapLocationClientOption option = new AMapLocationClientOption();
//          定位模式:1 高精度、2仅设备、3仅网络
// 设置高精度模式
        option.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);
//                设置是否优先使用GPS
        option.setGpsFirst(false);
//                连接超时3秒
        option.setHttpTimeOut(3000);
//                设置定位间隔60秒
        option.setInterval(60000);
//                设置是否返回地址,默认返回
        option.setNeedAddress(true);
//                设置是否单次定位
        option.setOnceLocation(false);
        //可选,设置是否等待wifi刷新,默认为false.如果设置为true,会自动变为单次定位,持续定位时不要使用
        option.setOnceLocationLatest(false);
//                设置网络请求协议
        AMapLocationClientOption.setLocationProtocol(AMapLocationClientOption.AMapLocationProtocol.HTTP);
//                设置是否使用传感器,不使用
        option.setSensorEnable(false);
        return option;
    }
 
Example 8
Source File: LocationService.java    From OpenWeatherPlus-Android with Apache License 2.0 6 votes vote down vote up
@Override
public void onCreate() {

    super.onCreate();

    //初始化定位
    mLocationClient = new AMapLocationClient(getApplicationContext());
    //声明AMapLocationClientOption对象
    AMapLocationClientOption mLocationOption = new AMapLocationClientOption();
    //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
    mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    //设置定位间隔,单位毫秒,默认为2000ms,最低1000ms。
    mLocationOption.setInterval(10000);
    //单位是毫秒,默认30000毫秒,建议超时时间不要低于8000毫秒。
    mLocationOption.setHttpTimeOut(20000);
    mLocationClient.setLocationListener(mLocationListener);
    //给定位客户端对象设置定位参数
    mLocationClient.setLocationOption(mLocationOption);
    //启动定位
    mLocationClient.startLocation();
}
 
Example 9
Source File: MainActivity.java    From OpenWeatherPlus-Android with Apache License 2.0 6 votes vote down vote up
private void initLocation() {
    //初始化定位
    mLocationClient = new AMapLocationClient(getApplicationContext());
    //设置定位回调监听

    //声明AMapLocationClientOption对象
    AMapLocationClientOption mLocationOption = new AMapLocationClientOption();
    //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
    mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    //设置定位间隔,单位毫秒,默认为2000ms,最低1000ms。
    mLocationOption.setInterval(10000);
    //单位是毫秒,默认30000毫秒,建议超时时间不要低于8000毫秒。
    mLocationOption.setHttpTimeOut(20000);
    mLocationClient.setLocationListener(mLocationListener);
    //给定位客户端对象设置定位参数
    mLocationClient.setLocationOption(mLocationOption);
    //启动定位
    mLocationClient.startLocation();
}
 
Example 10
Source File: InitHelper.java    From AndroidAll with Apache License 2.0 5 votes vote down vote up
public static void initAMap(Context context) {
    AMapLocationClient mLocationClient = new AMapLocationClient(context.getApplicationContext());
    mLocationClient.setLocationListener(new AMapLocationListener() {
        @Override
        public void onLocationChanged(AMapLocation aMapLocation) {
            // 一些处理
        }
    });
    AMapLocationClientOption mLocationOption = new AMapLocationClientOption();
    mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    mLocationOption.setOnceLocation(true);
    mLocationClient.setLocationOption(mLocationOption);
    mLocationClient.startLocation();
}
 
Example 11
Source File: AmapWrapper.java    From RunMap with Apache License 2.0 5 votes vote down vote up
private void initLocationOptions() {
    mAmapLocationOption = new AMapLocationClientOption();
    //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
    mAmapLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    //设置定位间隔,单位毫秒,默认为2000ms,最低1000ms。
    mAmapLocationOption.setInterval(mLocationInterval);
    //单位是毫秒,默认30000毫秒,建议超时时间不要低于8000毫秒。
    mAmapLocationOption.setHttpTimeOut(RMConfiguration.HTTP_OUT_TIME);
    //开启缓存机制
    mAmapLocationOption.setLocationCacheEnable(false);
    //需要返回地址
    mAmapLocationOption.setNeedAddress(true);
    //当设置为true时,网络定位可以返回海拔、角度和速度
    mAmapLocationOption.setSensorEnable(true);
}
 
Example 12
Source File: Alarm_Location_Activity.java    From Android_Location_Demo with Apache License 2.0 5 votes vote down vote up
@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_alarm_location);
	setTitle(R.string.title_alarmCPU);

	etInterval = (EditText) findViewById(R.id.et_interval);
	etAlarm = (EditText) findViewById(R.id.et_alarm);
	cbAddress = (CheckBox) findViewById(R.id.cb_needAddress);
	cbGpsFirst = (CheckBox) findViewById(R.id.cb_gpsFirst);
	tvReult = (TextView) findViewById(R.id.tv_result);
	btLocation = (Button) findViewById(R.id.bt_location);

	btLocation.setOnClickListener(this);

	locationClient = new AMapLocationClient(this.getApplicationContext());
	locationOption = new AMapLocationClientOption();
	// 设置定位模式为高精度模式
	locationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);
	// 设置定位监听
	locationClient.setLocationListener(this);
	
	// 创建Intent对象,action为LOCATION
	alarmIntent = new Intent();
	alarmIntent.setAction("LOCATION");
	IntentFilter ift = new IntentFilter();

	// 定义一个PendingIntent对象,PendingIntent.getBroadcast包含了sendBroadcast的动作。
	// 也就是发送了action 为"LOCATION"的intent
	alarmPi = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
	// AlarmManager对象,注意这里并不是new一个对象,Alarmmanager为系统级服务
	alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
	
	//动态注册一个广播
	IntentFilter filter = new IntentFilter();
	filter.addAction("LOCATION");
	registerReceiver(alarmReceiver, filter);
}
 
Example 13
Source File: MainFragment.java    From SeeWeather with Apache License 2.0 5 votes vote down vote up
/**
 * 高德定位
 */
private void location() {
    //初始化定位
    mLocationClient = new AMapLocationClient(getActivity());
    mLocationOption = new AMapLocationClientOption();
    mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);
    mLocationOption.setNeedAddress(true);
    mLocationOption.setOnceLocation(true);
    mLocationOption.setWifiActiveScan(false);
    //设置定位间隔 单位毫秒
    int autoUpdateTime = SharedPreferenceUtil.getInstance().getAutoUpdate();
    mLocationOption.setInterval((autoUpdateTime == 0 ? 100 : autoUpdateTime) * SharedPreferenceUtil.ONE_HOUR);
    mLocationClient.setLocationOption(mLocationOption);
    mLocationClient.setLocationListener(aMapLocation -> {
        if (aMapLocation != null) {
            if (aMapLocation.getErrorCode() == 0) {
                aMapLocation.getLocationType();
                SharedPreferenceUtil.getInstance().setCityName(Util.replaceCity(aMapLocation.getCity()));
            } else {
                if (isAdded()) {
                    ToastUtil.showShort(getString(R.string.errorLocation));
                }
            }
            load();
        }
    });
    mLocationClient.startLocation();
}
 
Example 14
Source File: Alarm_Location_Activity.java    From Android_Location_Demo with Apache License 2.0 5 votes vote down vote up
@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_alarm_location);
	setTitle(R.string.title_alarmCPU);

	etInterval = (EditText) findViewById(R.id.et_interval);
	etAlarm = (EditText) findViewById(R.id.et_alarm);
	cbAddress = (CheckBox) findViewById(R.id.cb_needAddress);
	cbGpsFirst = (CheckBox) findViewById(R.id.cb_gpsFirst);
	tvReult = (TextView) findViewById(R.id.tv_result);
	btLocation = (Button) findViewById(R.id.bt_location);

	btLocation.setOnClickListener(this);

	locationClient = new AMapLocationClient(this.getApplicationContext());
	locationOption = new AMapLocationClientOption();
	// 设置定位模式为高精度模式
	locationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);
	// 设置定位监听
	locationClient.setLocationListener(this);
	
	// 创建Intent对象,action为LOCATION
	alarmIntent = new Intent();
	alarmIntent.setAction("LOCATION");
	IntentFilter ift = new IntentFilter();

	// 定义一个PendingIntent对象,PendingIntent.getBroadcast包含了sendBroadcast的动作。
	// 也就是发送了action 为"LOCATION"的intent
	alarmPi = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
	// AlarmManager对象,注意这里并不是new一个对象,Alarmmanager为系统级服务
	alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
	
	//动态注册一个广播
	IntentFilter filter = new IntentFilter();
	filter.addAction("LOCATION");
	registerReceiver(alarmReceiver, filter);
}
 
Example 15
Source File: PerformanceApp.java    From android-performance with MIT License 5 votes vote down vote up
private void initAMap() {
    mLocationClient = new AMapLocationClient(getApplicationContext());
    mLocationClient.setLocationListener(mLocationListener);
    mLocationOption = new AMapLocationClientOption();
    mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    mLocationOption.setOnceLocation(true);
    mLocationClient.setLocationOption(mLocationOption);
    mLocationClient.startLocation();
}
 
Example 16
Source File: AMapLocationTool.java    From letv with Apache License 2.0 4 votes vote down vote up
private void setLocationOption() {
    AMapLocationClientOption option = new AMapLocationClientOption();
    option.setLocationMode(AMapLocationMode.Hight_Accuracy);
    option.setNeedAddress(true);
    this.mLocationClient.setLocationOption(option);
}
 
Example 17
Source File: FindWeatherAty.java    From myapplication with Apache License 2.0 4 votes vote down vote up
private void initViews() {
    isConnected = SystemUtils.checkNetworkConnection(this);

    titleLeftImv = (ImageButton) findViewById(R.id.title_left_imv);
    titleCityTv = (TextView) findViewById(R.id.title_center_tv);

    mCurDateTv = (TextView) findViewById(R.id.find_today_date);
    mCurTempTv = (TextView) findViewById(R.id.find_weather_temp);
    mCurPm25Tv = (TextView) findViewById(R.id.find_weather_pm25_tv);
    mCurWeaDesTv = (TextView) findViewById(R.id.find_weather_describe);
    mCurWeaWindTv = (TextView) findViewById(R.id.find_weather_wind);

    mTodayWeaImv = (ImageView) findViewById(R.id.find_weather_today_imv);
    mTodayWeaHighTmpTv = (TextView) findViewById(R.id.find_weather_today_hightmp);
    mTodayWeaLowTmpTv = (TextView) findViewById(R.id.find_weather_today_lowtmp);
    mTodayWeaDesTv = (TextView) findViewById(R.id.find_weather_today_wind_tv);

    mTomorrowWeaImv = (ImageView) findViewById(R.id.find_weather_tomorrow_imv);
    mTomorrowWeaHighTmpTv = (TextView) findViewById(R.id.find_weather_tomorrow_hightmp);
    mTomorrowWeaLowTmpTv = (TextView) findViewById(R.id.find_weather_tomorrow_lowtmp);
    mTomorrowWeaDesTv = (TextView) findViewById(R.id.find_weather_tomorrow_wind_tv);

    mData1Imv = (ImageView) findViewById(R.id.find_data1_imv);
    mData1WeaDesTv = (TextView) findViewById(R.id.find_data1_tmp_tv);
    mData1WeaWinsTv = (TextView) findViewById(R.id.find_data1_wind_tv);

    mData2TimeTv = (TextView) findViewById(R.id.find_data2_title_tv);
    mData2Imv = (ImageView) findViewById(R.id.find_data2_imv);
    mData2WeaDesTv = (TextView) findViewById(R.id.find_data2_tmp_tv);
    mData2WeaWinsTv = (TextView) findViewById(R.id.find_data2_wind_tv);

    mData3TimeTv = (TextView) findViewById(R.id.find_data3_title_tv);
    mData3Imv = (ImageView) findViewById(R.id.find_data3_imv);
    mData3WeaDesTv = (TextView) findViewById(R.id.find_data3_tmp_tv);
    mData3WeaWinsTv = (TextView) findViewById(R.id.find_data3_wind_tv);

    mData4TimeTv = (TextView) findViewById(R.id.find_data4_title_tv);
    mData4Imv = (ImageView) findViewById(R.id.find_data4_imv);
    mData4WeaDesTv = (TextView) findViewById(R.id.find_data4_tmp_tv);
    mData4WeaWinsTv = (TextView) findViewById(R.id.find_data4_wind_tv);

    mWeatherChartView = (WeatherChartView) findViewById(R.id.find_weather_weather_chart);

    mDressRout = (RelativeLayout) findViewById(R.id.find_dress_rout);
    mCarRout = (RelativeLayout) findViewById(R.id.find_car_rout);
    mTripRout = (RelativeLayout) findViewById(R.id.find_trip_rout);
    mColdlRout = (RelativeLayout) findViewById(R.id.find_coldl_rout);
    mSportRout = (RelativeLayout) findViewById(R.id.find_sport_rout);
    mSunRout = (RelativeLayout) findViewById(R.id.find_ziwaixian_rout);

    mDressTv = (TextView) findViewById(R.id.find_dress_tv);
    mDressTipTv = (TextView) findViewById(R.id.find_dress_tip_tv);

    mCarTv = (TextView) findViewById(R.id.find_car_tv);
    mCarTipTv = (TextView) findViewById(R.id.find_car_tip_tv);

    mTripTv = (TextView) findViewById(R.id.find_trip_tv);
    mTripTipTv = (TextView) findViewById(R.id.find_trip_tip_tv);

    mColdlTv = (TextView) findViewById(R.id.find_coldl_tv);
    mColdlTipTv = (TextView) findViewById(R.id.find_coldl_tip_tv);

    mSportTv = (TextView) findViewById(R.id.find_sport_tv);
    mSportTipTv = (TextView) findViewById(R.id.find_sport_tip_tv);

    mSunTv = (TextView) findViewById(R.id.find_ziwaixian_tv);
    mSunTipTv = (TextView) findViewById(R.id.find_ziwaixian_tip_tv);

    mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.find_weather_SRfLout);
    mSwipeRefreshLayout.setColorSchemeResources(R.color.colorAccent,
            R.color.colorPrimary,
            R.color.teal);

    // 设置高德地图
    aMapLocationClient = new AMapLocationClient(FindWeatherAty.this);
    aMapLocationClientOption = new AMapLocationClientOption();
    aMapLocationClientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    aMapLocationClientOption.setOnceLocation(true);
    aMapLocationClient.setLocationListener(this);

    // 进入页面mSwipeRefreshLayout自动刷新并填充数据
    mSwipeRefreshLayout.post(new Runnable() {
        @Override
        public void run() {
            mSwipeRefreshLayout.setRefreshing(true);

            if (isConnected) {
                aMapLocationClientOption.setNeedAddress(true);
                aMapLocationClientOption.setInterval(1000);
                aMapLocationClient.setLocationOption(aMapLocationClientOption);
                aMapLocationClient.startLocation();
                mLocationHandler.sendEmptyMessage(AMapUtils.MSG_LOCATION_START);
            } else {
                SystemUtils.noNetworkAlert(FindWeatherAty.this);
                mSwipeRefreshLayout.setRefreshing(false);
            }
        }
    });
}
 
Example 18
Source File: GeoFence_Old_Activity.java    From Android_Location_Demo with Apache License 2.0 4 votes vote down vote up
@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_geofence_old);
	setTitle(R.string.oldGeoFence);

	etRadius = (EditText) findViewById(R.id.et_radius);
	cbAlertIn = (CheckBox) findViewById(R.id.cb_alertIn);
	cbAlertOut = (CheckBox) findViewById(R.id.cb_alertOut);
	tvReult = (TextView) findViewById(R.id.tv_result);
	btFence = (Button) findViewById(R.id.bt_fence);

	btFence.setOnClickListener(this);

	IntentFilter fliter = new IntentFilter(
			ConnectivityManager.CONNECTIVITY_ACTION);
	fliter.addAction(GEOFENCE_BROADCAST_ACTION);
	registerReceiver(mGeoFenceReceiver, fliter);
	Intent intent = new Intent(GEOFENCE_BROADCAST_ACTION);
	mPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0,
			intent, 0);
	onceClient = new AMapLocationClient(getApplicationContext());
	locationClient = new AMapLocationClient(this.getApplicationContext());
	locationOption = new AMapLocationClientOption();

	// 设置定位模式高精度,添加地理围栏最好设置成高精度模式
	locationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);
	// 设置定位监听
	locationClient.setLocationListener(this);

	AMapLocationClientOption onceOption = new AMapLocationClientOption();
	onceOption.setOnceLocation(true);
	onceClient.setLocationOption(onceOption);
	onceClient.setLocationListener(new AMapLocationListener() {
		@Override
		public void onLocationChanged(AMapLocation loc) {
			if (loc != null) {
				if (loc.getErrorCode() == 0) {
					if (null != locationClient) {
						float radius = 1000;
						String strRadius = etRadius.getText().toString();
						if (!TextUtils.isEmpty(strRadius)) {
							radius = Float.valueOf(strRadius);
						}
						
						// 添加地理围栏,
						// 第一个参数:围栏ID,可以自定义ID,示例中为了方便只使用一个ID;第二个:纬度;第三个:精度;
						// 第四个:半径;第五个:过期时间,单位毫秒,-1代表不过期;第六个:接收触发消息的PendingIntent
						locationClient.addGeoFenceAlert("fenceId",
								loc.getLatitude(), loc.getLongitude(),
								radius, -1, mPendingIntent);
					}
				} else {
					Toast.makeText(getApplicationContext(), "获取当前位置失败!",
							Toast.LENGTH_SHORT).show();
					
					Message msg = mHandler.obtainMessage();
					msg.obj = loc;
					msg.what = -1;
					mHandler.sendMessage(msg);
				}
			}
		}
	});
}
 
Example 19
Source File: GeoFence_Old_Activity.java    From Android_Location_Demo with Apache License 2.0 4 votes vote down vote up
@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_geofence_old);
	setTitle(R.string.oldGeoFence);

	etRadius = (EditText) findViewById(R.id.et_radius);
	cbAlertIn = (CheckBox) findViewById(R.id.cb_alertIn);
	cbAlertOut = (CheckBox) findViewById(R.id.cb_alertOut);
	tvReult = (TextView) findViewById(R.id.tv_result);
	btFence = (Button) findViewById(R.id.bt_fence);

	btFence.setOnClickListener(this);

	IntentFilter fliter = new IntentFilter(
			ConnectivityManager.CONNECTIVITY_ACTION);
	fliter.addAction(GEOFENCE_BROADCAST_ACTION);
	registerReceiver(mGeoFenceReceiver, fliter);
	Intent intent = new Intent(GEOFENCE_BROADCAST_ACTION);
	mPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0,
			intent, 0);
	onceClient = new AMapLocationClient(getApplicationContext());
	locationClient = new AMapLocationClient(this.getApplicationContext());
	locationOption = new AMapLocationClientOption();

	// 设置定位模式高精度,添加地理围栏最好设置成高精度模式
	locationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);
	// 设置定位监听
	locationClient.setLocationListener(this);

	AMapLocationClientOption onceOption = new AMapLocationClientOption();
	onceOption.setOnceLocation(true);
	onceClient.setLocationOption(onceOption);
	onceClient.setLocationListener(new AMapLocationListener() {
		@Override
		public void onLocationChanged(AMapLocation loc) {
			if (loc != null) {
				if (loc.getErrorCode() == 0) {
					if (null != locationClient) {
						float radius = 1000;
						String strRadius = etRadius.getText().toString();
						if (!TextUtils.isEmpty(strRadius)) {
							radius = Float.valueOf(strRadius);
						}
						
						// 添加地理围栏,
						// 第一个参数:围栏ID,可以自定义ID,示例中为了方便只使用一个ID;第二个:纬度;第三个:精度;
						// 第四个:半径;第五个:过期时间,单位毫秒,-1代表不过期;第六个:接收触发消息的PendingIntent
						locationClient.addGeoFenceAlert("fenceId",
								loc.getLatitude(), loc.getLongitude(),
								radius, -1, mPendingIntent);
					}
				} else {
					Toast.makeText(getApplicationContext(), "获取当前位置失败!",
							Toast.LENGTH_SHORT).show();
					
					Message msg = mHandler.obtainMessage();
					msg.obj = loc;
					msg.what = -1;
					mHandler.sendMessage(msg);
				}
			}
		}
	});
}
 
Example 20
Source File: AMapLocationReactModule.java    From react-native-amap-location with MIT License 4 votes vote down vote up
@ReactMethod
public void startLocation(@Nullable ReadableMap options) {
    this.mLocationClient.startLocation();
    AMapLocationClientOption mLocationOption = new AMapLocationClientOption();
    // 默认值
    needMars = false;
    needDetail = false;
    if (options != null) {
        if (options.hasKey("needMars")) {
            needMars = options.getBoolean("needMars");
        }
        if (options.hasKey("needDetail")) {
            needDetail = options.getBoolean("needDetail");
        }
        if (options.hasKey("accuracy")) {
            //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
            switch(options.getString("accuracy")) {
                case "BatterySaving":
                    mLocationOption.setLocationMode(AMapLocationMode.Battery_Saving);
                    break;
                case "DeviceSensors":
                    mLocationOption.setLocationMode(AMapLocationMode.Device_Sensors);
                    break;
                case "HighAccuracy":
                    mLocationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);
                    break;
                default:
                    break;
            }
        }
        if (options.hasKey("needAddress")) {
            //设置是否返回地址信息(默认返回地址信息)
            mLocationOption.setNeedAddress(options.getBoolean("needAddress"));
        }
        if (options.hasKey("onceLocation")) {
            //设置是否只定位一次,默认为false
            mLocationOption.setOnceLocation(options.getBoolean("onceLocation"));
        }
        if (options.hasKey("wifiActiveScan")) {
            //设置是否强制刷新WIFI,默认为强制刷新
            //模式为仅设备模式(Device_Sensors)时无效
            mLocationOption.setWifiActiveScan(options.getBoolean("wifiActiveScan"));
        }
        if (options.hasKey("mockEnable")) {
            //设置是否允许模拟位置,默认为false,不允许模拟位置
            //模式为低功耗模式(Battery_Saving)时无效
            mLocationOption.setMockEnable(options.getBoolean("mockEnable"));
        }
        if (options.hasKey("interval")) {
            //设置定位间隔,单位毫秒,默认为2000ms
            mLocationOption.setInterval(options.getInt("interval"));
        }
        if (options.hasKey("killProcess")) {
            //设置退出时是否杀死service
            //默认值:false, 不杀死
            //模式为仅设备模式(Device_Sensors)时无效
            mLocationOption.setKillProcess(options.getBoolean("killProcess"));
        }

        if (options.hasKey("httpTimeOut")) {
            //设置联网超时时间
            //默认值:30000毫秒
            //模式为仅设备模式(Device_Sensors)时无效
            mLocationOption.setHttpTimeOut(options.getInt("httpTimeOut"));
        }
    }

    //给定位客户端对象设置定位参数
    this.mLocationClient.setLocationOption(mLocationOption);
    //启动定位
    this.mLocationClient.startLocation();
}