FORUMS

Location kit- Developing and Using the HMS Activity Identification Service

981 posts
Thanks Meter: 1,057
 
By XDARoni, XDA Community Manager on 22nd May 2020, 04:56 PM
Post Reply Email Thread
Assigning App Permissions
To use the activity identification service in versions earlier than Android Q, following permission is already defined in plugin.xml file
Code:
 <!--Activity Identification-->
<config-file target="AndroidManifest.xml" parent="/*">
     <!--...-->
    <uses-permission android:name="com.huawei.hms.permission.ACTIVITY_RECOGNITION"/>
    <!--...-->
</config-file>
To use the activity identification service in Android Q and later versions, following permission is already defined in plugin.xml file
Code:
<!--Activity Identification-->
<config-file target="AndroidManifest.xml" parent="/*">
    <!--...-->
    <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
    <!--...-->
</config-file>
Using the Activity Identification Class
The Java class defined for Activity Identification service of Location Kit is HMSActivityIdentification.

To use it on Cordova, you should initialise the Activity Identification service of Location Kit with HMSActivityIdentification.init() method before using other methods of HMSActivityIdentification.
Code:
// Initialize LocationKit
HMSLocationKit.init();
HMSActivityIdentification.init();
Registering Receiving of Activity Identification Updates
To use the activity identification service, you need to register receiving of activity identification updates to check the current user status, such as walking, bicycling, and motionless.
  • You can create activity identification updates using the createActivityIdentificationUpdates(duration) method.
    This method has an input parameter indicating the update interval, and returns the sent request ID in the response.
Code:
const activityIdentificationUpdateRequests = [];
const activityIdentificationUpdates = await HMSActivityIdentification.createActivityIdentificationUpdates(2000);
console.log({activityIdentificationUpdates});
//This id later used to remove the created updates.
activityIdentificationUpdateRequests.push(activityIdentificationUpdates.requestCode);
  • You can use the registerHMSEvent(eventName, handler) method to listen to and receive data from activity identification events.
Code:
activityIdentificationUpdateRequests.forEach(async requestCode => {
    const result = await HMSActivityIdentification.deleteActivityIdentificationUpdates(requestCode);
    console.log({requestCode, result});
});
activityIdentificationUpdateRequests.length = 0; // clear the array
Registering Receiving of Activity Conversion Updates
The function of detecting activity conversions (activity entering and exit) is provided, for example, to detect user status change from standing still to walking or walking to running etc.
  • You can create activity conversion updates using the createActivityConversionUpdates(conversionRequest) method.
    This method has an input parameter, which is an object specifying which type of activity and which type of conversions should be detected. The following is an example of the object.
Code:
const activityConversions = [
    // STILL
    {
        conversionType: HMSActivityIdentification.ActivityConversions.ENTER_ACTIVITY_CONVERSION,
        activityType: HMSActivityIdentification.Activities.STILL    },    
    {
        conversionType: HMSActivityIdentification.ActivityConversions.EXIT_ACTIVITY_CONVERSION,
        activityType: HMSActivityIdentification.Activities.STILL    
    },
    // ON FOOT
    {
        conversionType: HMSActivityIdentification.ActivityConversions.ENTER_ACTIVITY_CONVERSION,
        activityType: HMSActivityIdentification.Activities.FOOT
    },
    {
        conversionType: HMSActivityIdentification.ActivityConversions.EXIT_ACTIVITY_CONVERSION,
        activityType: HMSActivityIdentification.Activities.FOOT
    },
    // RUNNING
    {
        conversionType: HMSActivityIdentification.ActivityConversions.ENTER_ACTIVITY_CONVERSION,
        activityType: HMSActivityIdentification.Activities.RUNNING
    },
    {
        conversionType: HMSActivityIdentification.ActivityConversions.EXIT_ACTIVITY_CONVERSION,
        activityType: HMSActivityIdentification.Activities.RUNNING
    }
];
The createActivityConversionUpdates method returns a response containing the request ID.
Code:
const activityConversionUpdateRequests = [];
const activityConversions = [
    //...
];
const activityConversionResult = await HMSActivityIdentification.createActivityConversionUpdates(activityConversions);
console.log({activityConversionResult});
//This id later used to remove the created
updates.activityConversionUpdateRequests.push(activityConversionResult.requestCode);
  • You can use the registerHMSEvent(eventName, handler) method to listen to and receive data from activity conversion events.
Code:
registerHMSEvent(HMSActivityIdentification.Events.ACTIVITY_CONVERSION_RESULT, (result) => {
    console.log('new activity conversion');
});
  • You can remove activity conversion updates using the deleteActivityConversionUpdates(requestCode) method.
Code:
activityConversionUpdateRequests.forEach(async requestCode => {
    const result = await HMSActivityIdentification.deleteActivityConversionUpdates(requestCode);
    console.log({requestCode, result});
});
activityConversionUpdateRequests.length = 0; // clear the array
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes