Code Monkey home page Code Monkey logo

places-monitor-android's Introduction

Notice of deprecation

On August 31, 2021, the Places Monitor extension for the Adobe Experience Platform Mobile SDKs will be deprecated. The Places Monitor extension will not receive further updates or support beyond August 31st.

Customers that currently use the Places Monitor extension can continue usage of this extension with the understanding that no additional updates or support will be available through Adobe.

The deprecation of the Places Monitor extension has no bearing or negative impact on the Places Service extension which will continue to be supported with enhancements and updates.

Customers that are looking to transition away from the Places Monitor extension to their own monitoring solution should review the documentation for: Use Places Service with your own monitoring solution. This document explains how to interact with the Places Service by implementing Core Location services on iOS or Location Services from Google Play.

Getting started with the Places Monitor for Android

Table of Contents

  1. About this project
  2. Current version
  3. Contributing to the project
  4. Environment setup
  5. Tips for Location testing on Android
  6. Licensing

About this project

The Places Monitor for Android is used to manage the integration between Android's Geo Location services and the Android Places extension for the Adobe Experience Platform SDK.

Current version

Maven Central CircleCI

Integrate the Places Monitor into your app by including the following in your gradle file's dependencies:

implementation 'com.adobe.marketing.mobile:places-monitor:2.+'

Contributing to the project

Adobe is not currently accepting external contributions for this project, as it is still in the process of being fully set up. It is our desire to open this project to external contributions in the near future.

We look forward to working with you!

Environment setup

Android Studio 3.4 or newer is required to open this project. If necessary, please update here.

Open the Android Studio project

In Android Studio, open the code/build.gradle file

Tips for Location testing on Android

Running the app on Android API 26 and above

To improve user experience, Android 8.0 (Oreo - API level 26) imposes background execution limits, a mechanism which limits certain behaviors by apps that are not running in the foreground (for more information, read the Android documentation here). The result of this is a considerably lower chance of triggering a location update while testing a backgrounded app on an emulator. One way of making sure you get a location update / Geofence trigger while your app is in the background is by opening the Google maps app in the emulator and start faking the location. This usually results in a geofence event being triggered within a few seconds.

Running the app on Android API 25 and below

  • In Android Nougat and other previous versions, users must both give permission for an app to receive Location updates and enable Google Play's Location Services. The easiest way to do this is by opening the "Google Map" app and then granting the permission for google services thorough that app.

  • If you are running in an Android Emulator older than API 24, there is a chance that the Google Play Services for providing location is not updated. In such case you will be presented with the prompt to update Google Play Services within your application.

Licensing

This project is licensed under the Apache V2 License. See LICENSE for more information.

places-monitor-android's People

Contributors

iewilliam avatar pravinadobe avatar pravinpk avatar ravjain-adb avatar sbenedicadb avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

places-monitor-android's Issues

Sending context data during location updates

When we start location monitoring by calling PlacesMonitor.start() method in sdk, is there any way in sdk to send some custom attributes by attaching them to contextData for every location update when user enters any poi location range?
Sorry, if it is wrong place to ask this question.

PlacesMonitorOnBootReceiver - explicit value for android:exported be defined

Expected Behavior

PlacesMonitorOnBootReceiver should have explicit value for android:exported in AndroidManifest.xml to be targeted Android SDK 31

<receiver android:name="com.adobe.marketing.mobile.PlacesMonitorOnBootReceiver" android:exported="true">



Actual Behavior

  • no compile/build time error

  • runtime error:
    Installation failed due to: 'INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl2024741119.tmp/base.apk (at Binary XML file line #443): com.adobe.marketing.mobile.PlacesMonitorOnBootReceiver: Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present'

Reproduce Scenario (including but not limited to)

Steps to Reproduce

build and run app which using com.adobe.marketing.mobile:places-monitor library with
targetSdkVersion 31

Platform and Version

Sample Code that illustrates the problem

Logs taken while reproducing problem

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.