How to Accept Parameter Files Downloaded from TMS: Difference between revisions

From wizarPOS
(Replaced content with "{{Migrating|https://smartpossdk.gitbook.io/cloudpossdk/faq/tms-wizarview/accept-tms-file-downloads}}")
Tag: Replaced
 
Line 1: Line 1:
== How to Configure a Parameter File in WizarView ==
{{Migrating|https://smartpossdk.gitbook.io/cloudpossdk/faq/tms-wizarview/accept-tms-file-downloads}}
=== <big>Add a New Parameter File in WizarView:</big> ===
* Navigate to ''''Applications > Application'''' in WizarView.
* Click the + icon at the bottom left of the toolbox to open an edit window.[[File:Customizeparam.png|none|300px|left|caption]]
* In the edit window, enter the name and other required details. Select 'param' as the type.
* Enter the package name of the app set to receive the parameter file (usually defined in ''''AndroidManifest.xml'''').
* Input the parameter file name and click the ''''Commit'''' button.
=== <big>Search and Upload the Parameter File:</big> ===
* On the ''''Applications > Application page'''', select 'param' type and click the ''''Search'''' button.
* Choose the parameter file from the list.
* Click the configuration icon, then select the ''''Upload'''' button in the popup window.
* Choose the file to upload and click ''''Commit''''.
=== <big>Configure a Parameter File with a Template:</big> ===
[[File:Templates.png|none|100px|left|caption]]
* Go to ''''Templates > Configuration File''''. Click the + icon and choose group, input the name and other input area, including selecting the configuration file,then click Commit button.
[[File:Configurefile.png|none|400px|left|caption]]
Here is a example of the configuration file, [http://ftp.wizarpos.com/advanceSDK/CrediCardFile_MIR_TestParam.xml testparam], in configuration file, all type should be string, the others should change depends on your real requirement.
* For ''''Templates > Template'''', Click the + icon, input the name and other input area, select the configuration file created in the first step, create a new template and specify the app's package name that will accept the template parameter.
[[File:Templatecreate.png|none|400px|left|caption]]
* Under ''''Terminals > Terminal'''', select the serial number of the POS to push the template parameter to.
* Select Config Application parameter icon in the bottom toolbox, in the popup window, click Add button in the left bottom, select the template parameter created and modify the value in the UI and push it like an app.
[[File:Addapppram.png|none|700px|left|caption]]
== How to Receive Parameter Files in the Application ==
* '''First-Time Run Requirement:''' Upon the first installation of the application, ensure to run it at least once. This is necessary to register the broadcast receiver, which is crucial for receiving parameter files.
* '''Update Trigger:''' After the initial run, the app doesn’t need to be actively running in the background. The trigger for receiving new parameters is activated by pushing the parameter file and then navigating on the terminal to: ''''Settings > About POS > POS Configuration > Update now''''.
=== <big>Declare Permissions:</big> ===
* In your application's manifest file, declare the following permissions:
  android.permission.CLOUDPOS_PUSHSERVICE
  android.permission.CLOUDPOS_DOWNLOADRVICE
=== <big>Register BroadcastReceiver:</big> ===
* Utilize an Android ''''BroadcastReceiver'''' to receive notifications about pushed parameter files.
* Note: Pay attention to the 'type' field in the pushed information, as it helps distinguish different types of third-party data being pushed to your application.
<syntaxhighlight lang="java">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="your package name, which will configure in TMS package name area."
 
<!-- permission in manifest file-->
<uses-permission android:name="android.permission.CLOUDPOS_PUSHSERVICE" />
<uses-permission android:name="android.permission.CLOUDPOS_DOWNLOADRVICE" />
 
<!-- receiver in manifest file-->
<receiver
android:name="com.xxx.xxx.receiver.XXBroadcastReceiver">
    <intent-filter>
    <action android:name="your package name" />
</intent-filter>
</receiver>
 
<!-- receiver snippet code-->
public class ParamFileReceiver extends BroadcastReceiver {
private static final String MSG_TYPE_PARAM = "param:";
@Override
public void onReceive(Context context, Intent intent) {
String notification = intent.getStringExtra("notification");
if (notification != null
&&MSG_TYPE_PARAM.equals(notification.subSequence(0,
MSG_TYPE_PARAM.length()))) {
// remove unnecessary characters
String fileName = notification
                                      .substring(MSG_TYPE_PARAM.length());
}
}
}
}
</syntaxhighlight >
=== <big>Retrieve the Downloaded File:</big> ===
* Use the ''''BroadcastReceiver'''' to obtain the name of the received parameter file.
* Then, employ ''''ContentResolver'''' to access the file stream and handle the file accordingly.
<syntaxhighlight lang="java">
String URI_PARAM_FILE = "content://com.wizarpos.wizarviewagent.paramfilesprovider/file/";
 
Uri uri = Uri.parse(ParamFileProvider.URI_PARAM_FILE + fileName);
ContentResolver resolver = context.getContentResolver();
Reader reader = null;
try {
reader = new InputStreamReader(resolver.openInputStream(uri));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
</syntaxhighlight >
=== <big>Handling Distribution Results:</big> ===
* After processing the parameter file, communicate the results back to WizarView.
* WizarView will then determine whether the parameter file distribution is complete. If it’s not marked as complete, WizarView may continue to push the file.
<syntaxhighlight lang="java">
public static final String KEY_READED = "readed";
public static final String KEY_ERRLOG = "errlog";
 
String URI_PARAM_FILE = "content://com.wizarpos.wizarviewagent.paramfilesprovider/file/";
 
Uri uri = Uri.parse(ParamFileProvider.URI_PARAM_FILE + fileName);
ContentResolver resolver = context.getContentResolver();
ContentValues vaules = new ContentValues();
 
vaules.put("readed", true);
vaules.put("readed", false);
vaules.put("errlog", "Error in parameter information.Can not apply");
 
// give the result to the server
Uri resultUri = resolver.insert(uri, vaules);
if(resultUri == null){
Log.e(APP_TAG, "param happen error , you need check log for modify this question!");
}
 
</syntaxhighlight >
== Demo Application: ==
For a practical demonstration and further understanding, please download our [http://ftp.wizarpos.com/advanceSDK/ParamFileReceiverDemo.tar.gz complete project demo]. This sample will provide a clearer idea of the implementation.

Latest revision as of 04:59, 8 April 2024

Please visit new link of same subject:

https://smartpossdk.gitbook.io/cloudpossdk/faq/tms-wizarview/accept-tms-file-downloads

We're making a move! Our site's content is migrating to a new URL, to provide you with an enhanced browsing experience. Please update your bookmarks accordingly. Thank you for your continuous support!