应用程序被杀时的安卓地理围栏
我的主要要求是拥有自己的流程并触发自己的地理围栏事件的服务.我希望用户进入Geofence时,即使该应用被杀死,他都会从通知中心收到通知. . 我阅读了有关服务的信息,这对我来说很清楚,Android文档密集,因此我设法了解了如何使用自己的流程启动服务,以及如何使用Messenger与应用程序进行通信. 然后有Google中的代码示例,展示了如何使用Google Play服务使用地理申请: Google Samples GeoFencing 到目前为止,我发现我们必须使用意愿服务来触发地理围栏事件,并且从我阅读的文档中指出,IntentService在完成工作后终止了自己.我还测试了一些测试,看起来该应用程序被杀死时,IntentService被杀死了,这对我的文档并不令我感到惊讶. 所以我的问题是,我们如何执行具有自己的流程的地理围栏服务?是否可以避免在此问题上使用意见服务? 编辑: 我想这样做的原因是,用户可以将Geofence设置为"提醒",这是基
0 2024-02-18
编程技术问答社区
获取安卓应用用户在进入地理围栏时的方向
我正在与地理五人一起玩 - 我想做的是在解雇地理林时,找出他们要去哪个方向. 例如 - 让我们想在元素周围设置一个地理林.当我沿着州际公路向北行驶时,当我进入地理林(Geofence)时,我想弹出一条通知,上面写着" culvers,在右边下一个出口,向东行驶右边". 但是,如果他们在州际公路上向南行驶,它应该弹出并说:"罪魁祸首,在右边下一个出口,向东左向向东行驶". 不是最好的例子,但希望这会使这个想法跨越. 我有一些想法: 1.提出几个GPS或融合的位置请求,并使用这些请求来确定用户的前进位置. 2.使用传感器确定手机面对的方向. - 我从来没有使用过这些API,所以如果很容易获得该信息,我并不是真的很熟悉. 对这些想法的想法?更好的建议? 谢谢! 解决方案 我会使用刺痛,但我不会期望准确性. 其他解决方案 您最好使用GP,因为对于传感器,手机必须处于特定位置,即屏幕必须面对相反的驾驶方向.对于GPS,手机的位置无关紧要.
0 2024-02-17
编程技术问答社区
安卓11用户无法授予后台定位权限?
在Android 11中,针对SDK 30+的应用程序不会向用户显示将背景位置权限授予应用程序的选项.如果最初未授予,则要求用户转到设置页面. 我们如何将用户带到适当的设置页面? 当您的应用程序中的功能在运行Android 11或更高的设备上请求背景位置时,系统对话框不包括一个按钮以启用背景位置访问.为了启用背景位置访问,用户必须在设置页面上设置应用程序位置权限的所有时间选项,如指南中所述如何请求背景位置的指南. 版本/11/隐私/位置#变更详细信息 授予背景位置的设置选项的用户可见标签(例如,在图3中允许所有时间).您可以呼叫BackbackgroundPermissionOptionLabel()获取此标签.此方法的返回值本地化为用户的设备语言偏好. https://developer.android.com/training/位置/权限#请求-leocation-access-runtime 虽然Android提供了一个新的API来获取此设置页面标签,
6 2024-02-17
编程技术问答社区
地理围栏-问题在触发'GEOFENCE_NOT_AVAILABLE'。
我使用Geodcencing使用的应用程序,并且自从我开始使用它以来,我就可以向广播员进行过渡,当我关闭GPS位置时,我会在Code geofence_not_available中获得警报,然后我在我将在Geofences的服务中启动了Geofences的服务.打开GPS. 现在,我休息了几天,当我关闭GP时,我的广播员突然无法获得警报.我不明白为什么? *当我从位置输入/退出(就像我在地理启动中定义的那样)时,我会触发警报,问题只是在触发geofence_not_available警报中. 如果有人可以帮助我 我很高兴 解决方案 对于在Android 11上运行应用程序时经历此问题的任何人(即使针对API 29或更低的构建中的API 30),确认是预期的行为,因为Android OS在位置时不再登记为Android OS,服务已关闭. 但是,在关闭位置服务时,您仍然无法注册地理诉讼,因此必须检查其可用性,并提示用户在需要注册新的时打开它们.先前注册的不需要重新注册.
0 2024-02-17
编程技术问答社区
安卓地理围栏-无来意?
我有一个奇怪的问题. 我使用Google Services实施了地理申请. (以下实施) 它们在我的设备(三星Galaxy S和Moto X)上,它们的工作非常完美.在其他一些设备(HTC令人难以置信的S,Galaxy Note)上,我没有收到过渡意图.绝不.凭借出色,准确的GPS修复,站在栅栏中间.没有什么.日志中没有任何可疑.没有错误,没有警告.没有ITENTS,服务没有开始. 有人见过这样的东西吗? (这很奇怪,因为我看不到有效的设备与无用的设备之间的任何连接.它不是制造商,不是Android版本,Play Services在所有这些方面都是最新的.) 实施: 清单:
地理围栏警报不显示
使用以下代码添加geofence后,未显示通知.即使重新回调正在取消成功. 在GoogleApiClientApi onConnected()回调方法中添加geofence: public void onConnected(Bundle bundle) { LocationServices.GeofencingApi.addGeofences( googleApiClient, getGeofencingRequest(), getGeofencePendingIntent() ).setResultCallback(this); } 请求Geofence: private GeofencingRequest getGeofencingRequest() { geoFenceList.add(new Geofence
0 2024-02-16
编程技术问答社区
在地理围栏过渡后,我如何在主要活动上做一些事情?
当有人进入我的一个地理上的一个时,我想在地图上看到一个布局,然后开始播放一些音频. 我一直在遵循一些教程,我知道如何在进入时进行推送通知,但这一切都发生在另一个IntentService类中. 也许这就是on Result的目的?我不确定如何从结果参数中获取地理信息 LocationServices.GeofencingApi.addGeofences( gApiClient, getGeofencingRequest(), getGeofencePendingIntent() ).setResultCallback(this); @Override public void onResult(Result result) { } 我的意愿服务类 public class GeofenceTransitionsIntentService extends IntentService
0 2024-02-16
编程技术问答社区
安卓:建立多边形形状的地理围栏
根据API文档,仅允许循环形状地理: https://developers.google.google. com/android/referent/com/google/google/android/gms/location/geofence.builder ,例如:位置/geofencing.html 但是我有4个位置,代表4个矩形,我希望我的地理林格是矩形. 我想避免解决我的自定义位置监视服务,以扩展监视地理的功能,因为我认为这种服务是CPU和电力消耗... 谢谢, 解决方案 您必须自己做(但是我认为它是毫无意义的 - 地理/位置服务不准确,甚至无法提醒圈子,甚至不考虑其他一些具体形状). 创建包含多边形的最小圆形地理林格,如果被触发,只需检查您是否在多边形中使用 Google Maps Android Api Utility Library . 换句话说,检查您是否在白色区域,不为灰色: 其他解决方案 Android Gei
安卓系统的地理围栏在关闭和开启位置后无法触发
我正在使用Android Geipencing API.添加地理上的地理位置后,它在位置开启时正常工作.但是,如果我离开位置,然后再一次,然后在Enter或Exit时再次触发地理触发器.我已经在Android 5.0上对Moto进行了测试. 2个设备.如果位置关闭,地理林将过期? 我在Android文档上看到了 如果网络位置提供商被用户禁用,则 Geofence服务将停止更新,所有注册的地理诉讼将是 删除并通过提供的待处理意图产生意图.在 在这种情况下,从此意图创建的地理范围代表 错误事件,其中haserror()返回true和getErrorCode()返回 geofence_not_available. 解决方案 yeap,一旦关闭位置后,地理福音将被删除. 您应该在清单中使用A BroadcastReceiver收听位置提供商广播,例如:
0 2024-02-16
编程技术问答社区
安卓:如何让用户为另一个被追踪的用户创建地理围栏?
如何实施地理林以跟踪其他用户? 我正在开发一个将跟踪家庭成员的应用程序,并且我想实现Geofence功能,该功能将使用户能够为Ex: 做到 用户A将跟踪用户b 用户A将确定地理范围区域,何时用户B进入此Geofence用户A将获得通知 我每10分钟重述了用户B的位置,我想为用户b创建Geofence,这将通知用户a当用户B输入Geofence区域 我尝试像以下代码一样使用Google Geofence: mGeofenceList.add(new Geofence.Builder() // Set the request ID of the geofence. This is a string to identify this // geofence. .setRequestId(entry.getKey()) .setCircularRegion( entry.getValue().latitude, entry.getValu
0 2024-02-16
编程技术问答社区
通过程序将定位模式改为高精度安卓系统
可以在用户在位置设置选项下的三个模式中选择的位置模式中获取信息,即 1.高精度 2. Battery保存 3.GPS 我想通过编程方式检查用户是否选择了高精度模式,如果没有,请自动启用它.是否可以 ?请建议. 解决方案 由于 API级别19(Kitkat): ,可以获取设备的当前位置模式 public int getLocationMode(Context context) { return Settings.Secure.getInt(activityUnderTest.getContentResolver(), Settings.Secure.LOCATION_MODE); } 这些是可能的返回值(请参阅0 = LOCATION_MODE_OFF 1 = LOCATION_MODE_SENSORS_ONLY 2 = LOCATION_MODE_BATTERY_SAVING 3 = LOCATION_MODE_HIGH_ACCURACY
0 2024-02-16
编程技术问答社区
应用程序被删除时,地理围栏不起作用
我知道之前已经问过类似的问题,但答案并不完美. 我使用Android Developer网站的示例代码创建了一个带有地理的应用程序.我没有使用任何共享的偏好来存储地理五项,因为我没有删除地理诉讼.我正在从Geofence内测试该应用程序,但是每次应用程序运行时,我的智能手机都会收到通知,并且在杀死应用程序时未观察到通知.为什么会发生这种情况?我认为即使杀死该应用程序,我也应该收到通知. MainActivity public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.drawer_layout); ..... GeofencingTask myTask
2 2024-02-16
编程技术问答社区
在安卓系统中添加地理围栏时出错(状态码1000)。
我在onAddGeofencesResult(int statusCode, String[] geofenceRequestIds)回调中遇到错误,statusCode = 1000 我启用了GPS和WiFi.我也有Google Play服务,我能够跟踪我的位置并请求更新.为什么我无法添加地理福音?即使从文档示例应用程序中,我也无法添加地理福音.我收到以下吐司消息: "添加地理:失败,错误代码1000 geofencerequestids = [1,2,1,2]" 来自文档(状态代码1000): public static final int GEOFENCE_NOT_AVAILABLE Geofence服务现在不可用.通常是因为用户关闭了设置中的位置访问>位置访问. 常数值:1000(0x000003E8) 解决方案 您将获得GEOFENCE_NOT_AVAILABLE(代码'1000')当用户不同意在设置 - > location-> M
在调用BroadcastReceiver时,我是否需要获得唤醒锁?
在书中 satya komatineni by dro="nofollow"> satya komatineni,dave Maclean 我发现: Android在调用广播服务时会获取部分唤醒锁,并在主线程中从服务返回时将其释放 这是否意味着Android OS确保设备在通过BroadcastReceiver>>>?的情况下醒来Google Play Services(GoogleLocationservices和准确地说是). 在哪里记录了? 编辑:我还发现了它 因为可以保证broadcastreceiver.onreceive()将在CPU进入睡眠之前始终完全执行 解决方案 没有"广播服务"之类的东西. 此外,您还需要阅读包含第二个报价的整个帖子,因为 对于AlarmManager触发的广播.它是AlarmManager,而不是WakeLock的广播Intent机制.另外,正如该博客文章中指出的那样,戴安娜·哈克伯恩(Dianne Hackb
从IntentService转移到Android O的JobIntentService的问题
我正在使用意图服务来监视Geofence过渡.为此,我正在使用粘性服务的以下呼叫. LocationServices.GeofencingApi.addGeofences( mGoogleApiClient, getGeofencingRequest(), getGeofencePendingIntent() ) 和等待的意图呼叫过渡服务(意图服务)如下. private PendingIntent getGeofencePendingIntent() { Intent intent = new Intent(this, GeofenceTransitionsIntentService.class); // We use FLAG_UPDATE_CURRENT so that we get t
0 2024-02-12
编程技术问答社区
当应用程序从最近的应用程序中删除时,IntentService停止工作
我在应用程序中使用Geofence,并基于地理事件(输入或退出),我想执行一些操作. geofence geofencetransitionsintentservice.java public class GeofenceTransitionsIntentService extends IntentService { Handler mHandler; public GeofenceTransitionsIntentService() { super("GeofenceTransitionsIntentService"); mHandler = new Handler(); } @Override public void onCreate() { super.onCreate(); Log.e("JK-->>","service started!"); }
6 2024-02-11
编程技术问答社区
Google Play服务的位置API使用限制
如果您使用的是通过Google Play服务等较新的Android位置API功能,例如GeoFences或ActivityUpate,您是否受到任何使用限制? 我知道有限制,例如一次注册100个地理申请,但是除了我每天允许的请求等方面,我能找到的任何用法限制似乎是指Google Maps API,而不是位置API. 解决方案 Location API的使用没有限制.限制仅适用于注册Geofences. 其他解决方案 检查 this for Geofence的链接使用限制 请求率 One request every five seconds, shared across Collections / Geofences / Entities. 全球限制 Maximum per account: 1000 Geofences 3 Collections per Geofence 3 Entities per Geofence 10 loops per poly
2 2024-02-11
编程技术问答社区
在后台创建安卓地理围栏而不崩溃
我目前有一个意图服务,该意图通过LAT,LNG Infos接收GCM消息,我想在没有前景应用程序的情况下在后台注册Geofence.我已经尝试将工作(活动)代码放入IntentService中,但是我得到了一个N​​ullPoInterException,但我不知道为什么. @Override protected void onHandleIntent(Intent intent) { Bundle extras = intent.getExtras(); GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this); String messageType = gcm.getMessageType(intent); if (!extras.isEmpty()) { Double lat = Double.parseDouble(extras.g
2 2024-02-10
编程技术问答社区
DOZE模式睡觉Google的Geofence样本应用程序
我有一个使用Geofence的Android应用程序,并且我很难克服打ze的方式.我的清单具有Wake_lock的权限,每个区域的七个setNotification Responsissive to 0.我什至更改为Broadcastreceiver的悬而未决,但是该应用程序在删除的智能手机屏幕上实际上睡觉或死了.我已经尝试使用LocationRequest LocationRequest.setFastestInterval(1000); LocationRequest.setInterval(2000); 即使这样,我也没有成功.是否有人设法将应用程序与DOZE保持运行? 解决方案 我最终将我的应用程序放置以接收推送消息.显然,该应用不再被操作系统杀死. 其他解决方案 我在聊天应用程序和位置跟踪应用程序中遇到了问题,在打ze模式时,我们将不会得到任何推动,否则我们将无法获得任何网络连接或位置详细信息,并且大多数背景操作将被阻止由于优化了电池,我们可以通过两种
8 2024-02-09
编程技术问答社区