How a Programmer Created a Helpful Travel App for His Girlfriend
“Hey, they say it’s five centimeters per second. The falling speed of a cherry blossom petal. Five centimeters per second.”
Upon hearing these famous lines from a well-known Japanese anime, John, a Huawei programmer, realized that cherry trees are currently blossoming.
John’s girlfriend, Jenny, also loves cherry blossoms and planned to visit Paris’s most famous park for cherry blossoms, Parc de Sceaux, on the weekend. John, unfortunately, was still on a business trip that weekend and could not go with his girlfriend.
So John said to himself, “How about I make an intelligent travel app, I am a programmer after all, for Jenny, so that she can enjoy the cherry blossoms in the best possible way?” John then listed the following requirements for the app he was about to quickly create:
Considerate travel reminders: remind her of important events in advance in her schedule, such as when to depart.
Weather forecast: provide suggestions on what to bring and wear based on the weather conditions at her destination.
Push messages: push helpful tips and discount information to her once she arrives at the destination.
Luckily for John, the preceding capabilities can be implemented without hassle using the time and weather awareness capabilities of HUAWEI Awareness Kit, the geofence capabilities of HUAWEI Location Kit, and the message pushing capabilities of HUAWEI Push Kit.
Overview
Awareness Kit provides your app the ability to obtain contextual information including users’ current time, location, behavior, headset status, weather, ambient light, car stereo connection status, and beacon connection status, which can be combined to create various barriers that run in the background and trigger once the predefined context is met.
Location Kit combines GNSS, Wi-Fi, and base station positioning capabilities into your app, allowing you to provide flexible location-based services for users around the world.
Push Kit is a messaging service tailored for developers, which helps create a cloud-to-device messaging channel. With Push Kit integrated, your app can send messages to users’ devices in real time.
Code Development
1. Awareness Kit Integration
Preparations
The following three key steps are required for integrating Awareness Kit. For details, please refer to the development guide on the HUAWEI Developers website.
1. Configure app information in AppGallery Connect.
2. Integrate the HMS Core Awareness SDK.
3. Configure obfuscation scripts.
Development Procedure
- Declare required permissions in the AndroidManifest.xml file.
2. Obtain weather information based on the city name.
3. Implement scheduled reminders and message pushing once a user arrives at the destination.
(1) Register a static broadcast receiver to receive notifications when the app is terminated.
The sample code in the AndroidManifest.xml file as follows.
The Java sample code as follows:
(2) Define the time barrier and corresponding label, then add the barrier.
(3) Define the location barrier and corresponding label, then add the barrier.
(4) Define the broadcast receiver to listen for the barrier event for further processing.
2. Location-based Message Pushing.
Preparations
- Add the Huawei Maven repository address to the build.gradle file in the root directory of your project. The sample code as follows:
2. Add dependencies on the Location and Push SDKs to the build.gradle file in the app directory of your project.
Key Steps
1. Declare system permissions in the AndroidManifest.xml file.
Location Kit incorporates GNSS, Wi-Fi, and base station positioning capabilities into your app. In order to do this, it requires the network, precise location, and coarse location permissions. If you want the app to continuously obtain user locations when running in the background, you also need to declare the ACCESS_BACKGROUND_LOCATION permission in the AndroidManifest.xml file.
Note: The ACCESS_FINE_LOCATION, WRITE_EXTERNAL_STORAGE, and READ_EXTERNAL_STORAGE permissions are dangerous system permissions, so you need to dynamically apply for these permissions. If your app does not have the permissions, Location Kit will be unable to provide services for your app.
2. Create a geofence and trigger it.
Create a geofence or geofence group as needed, and set related parameters.
3. Trigger message pushing.
Send a push message when onReceive of GeoFenceBroadcastReceiver detects that the geofence is triggered successfully. The message will be displayed in the notification panel on the device.
Note: The geofence created using the sample code will trigger two callbacks for conversion types 1 and 4. One is triggered when a user enters the geofence and the other is triggered when the user stays in the geofence. If Trigger is set to 7 in the code, callbacks for all scenarios, including entering, staying, and leaving the geofence, are configured.
Let us see this Demo:
For more details, you can go to:
l Our Development Documentation page, to find the documents you need.
l Experience the easy-integration process on Codelabs
l GitHub to download demos and sample codes
l Stack Overflow to solve any integration problem.