Class AppUsageUploader

  • All Implemented Interfaces:

    @Deprecated() 
    public final class AppUsageUploader
    
                        

    This class is used for uploading client usage information to mobile services.

    Preparation-- Before using AppUsageUploader

    • Need to enable the server to upload application-specific usage statistics and reports from mobile devices. See Defining Usage Report Policy.
    • A connection to mobile services has been established using okHttpClient.
    • AppUsage.initialize(Context, SettingsParameters, char[]) has been called.

    Implementing UploadListener: Optional but recommended. For example,

    
    class MyUsageUploadListener implements UploadListener {
    public void onSuccess() {
    sLogger.debug("Upload completed successfully");
    }
    
    public void onError(Throwable error) {
    if (error instanceof HttpException) {
    sLogger.debug("Upload with server error: {}, code = {}",
    ((HttpException) error).message(),
    ((HttpException) error).code());
    } else {
    sLogger.debug("Upload error: {}", error.getMessage());
    }
    }
    
    public void onProgress(int percentUploaded) {
    // For example, update the progress bar...
    }
    }
    

    Registering a UploadListener:

    
    MyUsageUploadListener listener = new MyUsageUploadListener;
    
    // Call addUsageUploadListener(listener)
    AppUsageUploader.addUsageUploadListener(listener);
    

    Uploading-- via upload. AppUsageUploader runs in an AsyncTask, it retrieves the snapshot from the usage store, converts the usage records to the format required by SAP Mobile Services, then uploads them to the server.

    onProgress is invoked multiple times during usage uploading, onSuccess is invoked after the upload is completed successfully, and onError is invoked when upload failed or cancelled.

    
    // Establishes a connection to mobile services using okHttpClient.
    
    ....
    AppUsageUploader.upload(okHttpClient, targetID);
    

    Viewing Usage Reports on Server-- After successful client data upload, you can find your reports on the server.

    See Viewing Client Usage Reports. Deprecated since version 4.0, please use uploadUsageData

    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      static void cancelUpload() Cancels upload for the system default target ID if an upload is in progress.
      static void upload() Uploads the usage records associated with the system default target ID to the CPMS server asynchronously using AsyncTask internally.
      static void upload(@NonNull() OkHttpClient httpClient) Uploads the usage records associated with the system default target ID to the CPMS server asynchronously using AsyncTask internally.
      static void upload(@NonNull() String targetId) Uploads the usage records associated with the specified target ID to the CPMS server asynchronously using AsyncTask internally.
      static void upload(@NonNull() OkHttpClient httpClient, @NonNull() String targetId) Uploads the usage records associated with the specified target ID to the CPMS server asynchronously using AsyncTask internally.
      static void setListener(@Nullable() AppUsageUploader.UploadListener listener)
      static void addUploadListener(@NonNull() AppUsageUploader.UploadListener listener) Register a listener for usage upload events.
      static void removeUploadListener(@NonNull() AppUsageUploader.UploadListener listener) Unregister a listener for usage upload events.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

    • Method Detail

      • cancelUpload

         static void cancelUpload()

        Cancels upload for the system default target ID if an upload is in progress.

      • upload

         static void upload()

        Uploads the usage records associated with the system default target ID to the CPMS server asynchronously using AsyncTask internally.

        Note: This method must be called in the UI(main) thread. If the caller has set up UploadListener, its callback methods will be invoked in UI thread.

        Preconditions:

        1. AppUsage.initialize(Context, SettingsParameters, char[]) has been called already.

        2. com.sap.cloud.mobile.foundation.usage.AppUsageRecords have been reported and persisted using methods provided by AppUsage.

        3. addUploadListener has been called.

        Steps:

        1. Takes a snapshot to collect usage records associated with the given target ID reported so far.

        2. Converts the snapshot to the JSON format required by mobile services.

        3. Uploads the formatted data to the specified SAP server URL.

        4. Removes the uploaded records from the secure usage store upon successful upload.

      • upload

         static void upload(@NonNull() OkHttpClient httpClient)

        Uploads the usage records associated with the system default target ID to the CPMS server asynchronously using AsyncTask internally.

        Note: This method must be called in the UI(main) thread. If the caller has set up UploadListener, its callback methods will be invoked in UI thread.

        Preconditions:

        1. AppUsage.initialize(Context, SettingsParameters, char[]) has been called already.

        2. com.sap.cloud.mobile.foundation.usage.AppUsageRecords have been reported and persisted using methods provided by AppUsage.

        3. addUploadListener has been called.

        Steps:

        1. Takes a snapshot to collect usage records associated with the given target ID reported so far.

        2. Converts the snapshot to the JSON format required by mobile services.

        3. Uploads the formatted data to the specified SAP server URL.

        4. Removes the uploaded records from the secure usage store upon successful upload.

        Parameters:
        httpClient - An OkHttpClient that has the mobile services session already established
      • upload

         static void upload(@NonNull() String targetId)

        Uploads the usage records associated with the specified target ID to the CPMS server asynchronously using AsyncTask internally.

        Note: This method must be called in the UI(main) thread. If the caller has set up UploadListener, its callback methods will be invoked in UI thread.

        Preconditions:

        1. AppUsage.initialize(Context, SettingsParameters, char[]) has been called already.

        2. com.sap.cloud.mobile.foundation.usage.AppUsageRecords have been reported and persisted using methods provided by AppUsage.

        3. addUploadListener has been called.

        Steps:

        1. Takes a snapshot to collect usage records associated with the given target ID reported so far.

        2. Converts the snapshot to the JSON format required by mobile services.

        3. Uploads the formatted data to the specified SAP server URL.

        4. Removes the uploaded records from the secure usage store upon successful upload.

        Parameters:
        targetId - the targetID to create the snapshot
      • upload

         static void upload(@NonNull() OkHttpClient httpClient, @NonNull() String targetId)

        Uploads the usage records associated with the specified target ID to the CPMS server asynchronously using AsyncTask internally.

        Note: This method must be called in the UI(main) thread. If the caller has set up UploadListener, its callback methods will be invoked in UI thread.

        Preconditions:

        1. AppUsage.initialize(Context, SettingsParameters, char[]) has been called already.

        2. com.sap.cloud.mobile.foundation.usage.AppUsageRecords have been reported and persisted using methods provided by AppUsage.

        3. addUploadListener has been called.

        Steps:

        1. Takes a snapshot to collect usage records associated with the given target ID reported so far.

        2. Converts the snapshot to the JSON format required by mobile services.

        3. Uploads the formatted data to the specified SAP server URL.

        4. Removes the uploaded records from the secure usage store upon successful upload.

        Parameters:
        httpClient - An OkHttpClient that has the mobile services session already established
        targetId - the targetID to create the snapshot
      • addUploadListener

         static void addUploadListener(@NonNull() AppUsageUploader.UploadListener listener)

        Register a listener for usage upload events. Events will be triggered on the main thread.

        Parameters:
        listener - a listener for usage upload events.