This package contains StarMgsIO SDK Ver 1.5.1
starmgsio.aar is a
library for supporting application development for Star scales.
MG_series_Scale_StarMgsIO_Android_SDK_V1_5_1/
├── Documents/
│ ├── readme.url // Link to SDK manual
│ └── style.css // Style sheet
│── Software/
│ ├── SDK/ // Samples (Ver 1.5.1)
│ └── Distributables/
│ └── starmgsio.aar // starmgsio.aar (Ver 1.5.1)
└── SoftwareLicenseAgreement.pdf // Software License Agreement
Supported models :
Supported OS : - Android 9.0 - Android 15.0
StarMgsIO SDK library supports Maven Repository and AAR file. Please link library that suits your application configuration.
{
dependencies 'com.starmicronics:starmgsio:starmgsioVersion'
implementation ...
}
Please refer to app/build.gradle in SDK for the latest library version.
In your app, please link starmgsio.aar located in Software/Distributables/.
Insert following code in app/build.gradle.
{
dependencies files('../../Distributables/starmgsio.aar')
implementation ...
}
<?xml version="1.0" encoding="utf-8"?>
manifest xmlns:android="http://schemas.android.com/apk/res/android"
< xmlns:tools="http://schemas.android.com/tools">
uses-permission
< android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30" />
uses-permission
< android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30" />
uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"
< android:maxSdkVersion="30" />
uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
< android:maxSdkVersion="30" />
uses-permission
< android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation"
tools:targetApi="31" />
uses-permission
< android:name="android.permission.BLUETOOTH_CONNECT"
tools:targetApi="31" />
<!-- Declare this required feature if you want to make the app available to BLE-capable
devices only. If you want to make your app available to devices that don't support BLE,
you should omit this in the manifest. Instead, determine BLE capability by using
PackageManager.hasSystemFeature(FEATURE_BLUETOOTH_LE) -->
uses-feature
< android:name="android.hardware.bluetooth_le"
android:required="true"/>
application>
<
...application>
</
manifest> </
Create “device_filter.xml” in res folder.
<?xml version="1.0" encoding="utf-8"?>
resources>
<usb-device vendor-id="1305" product-id="4100" />
<usb-device vendor-id="1305" product-id="4101" />
<usb-device vendor-id="1305" product-id="4102" />
<usb-device vendor-id="1305" product-id="4136" />
<usb-device vendor-id="1305" product-id="4137" />
<usb-device vendor-id="1305" product-id="4138" />
<usb-device vendor-id="1305" product-id="4139" />
<usb-device vendor-id="1305" product-id="4140" />
<usb-device vendor-id="1305" product-id="4141" />
<resources> </
And add next text in manifest.xml.
manifest xmlns:android="http://schemas.android.com/apk/res/android"
< package="com.starmicronics.starmgsiosdk">
...
application
<...>
activity
<...
android:exported="true">
intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
<intent-filter>
</meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" />
<activity>
</
application>
</
manifest> </
public class StarDeviceManager
This class is used to manage a scale.
Public constructor |
---|
StarDeviceManager(Context
context) Create a StarDeviceManager class instance for all interface. |
StarDeviceManager(Context context,
StarDeviceManager.InterfaceType type) Create a StarDeviceManager class instance for specific interface. |
Usage
= new StarDeviceManager(ScanActivity.this, StarDeviceManager.InterfaceType.All); mStarDeviceManager
Public methods | |
---|---|
void | scanForScales(StarDeviceManagerCallback
callback) Start scanning scales callback: The information to connect a scale will be notified to StarDeviceManagerCallback#onDiscoverScale method when a new scale is discovered |
void | stopScan() Stop scanning scales |
Scale | createScale(@NonNull ConnectionInfo
info) Create a Scale class instance with the information to connect a scale |
String | getVersionName() Get starmgsio.aar library version name |
Usage - scanForScales()
.scanForScales(mStarDeviceManagerCallback); mStarDeviceManager
See ScanActivity for more information.
Usage - createScale()
= starDeviceManager.createScale(connectionInfo); mScale
See ScaleActivity for more information.
public enum StarDeviceManager.InterfaceType
This enum is used to specify the StarDeviceManager’s InterfaceType setting.
Constants | |
---|---|
StarDeviceManager.InterfaceType | BluetoothLowEnergy Bluetooth Low Energy |
StarDeviceManager.InterfaceType | USB USB |
StarDeviceManager.InterfaceType | All All interface which can support by this library |
public abstract class StarDeviceManagerCallback
This class is used to receive the result of processes done in the StarDeviceManager class.
Public constructor |
---|
StarDeviceManagerCallback() Create a StarDeviceManagerCallback class instance |
Public method | |
---|---|
void | onDiscoverScale(@NonNull ConnectionInfo
info) Notify the execution result of StarDeviceManager#scanForScales method |
private final StarDeviceManagerCallback mStarDeviceManagerCallback = new StarDeviceManagerCallback() {
@Override
public void onDiscoverScale(@NonNull ConnectionInfo connectionInfo) {
Map item = new HashMap<>();
.put(INTERFACE_TYPE_KEY, connectionInfo.getInterfaceType().name());
item.put(DEVICE_NAME_KEY, connectionInfo.getDeviceName());
item.put(IDENTIFIER_KEY, connectionInfo.getIdentifier());
item
if(!mDataMapList.contains(item)) {
.add(item);
mDataMapList.notifyDataSetChanged();
mAdapter}
}
};
public class ConnectionInfo
The following constants is used for ConnectionInfo class as any device identifier of scale(exclude BLE).
Constants | |
---|---|
String | ANY_DEVICE_IDENTIFIER Any device identifier of scale(exclude BLE). If 2 more scales can be detected on a host device, library automatically selects one scale at random every time. |
Data class to store the information to connect a scale
Public methods | |
---|---|
ConnectionInfo.InterfaceType | getInterfaceType() Return interface type |
String | getIdentifier() Return identifier |
String | getMacAddress() Return MAC address |
String | getDeviceName() Return device name |
int | getBaudRate() Return baud rate |
ScaleType | getScaleType() Return scale type |
public enum ConnectionInfo.InterfaceType
This enum is used to specify the ConnectionInfo’s InterfaceType setting.
Constants | |
---|---|
ConnectionInfo.InterfaceType | BLE Bluetooth Low Energy |
ConnectionInfo.InterfaceType | USB USB Note : MG-T12,MG-T30 and MG-T60 is not support. |
ConnectionInfo.InterfaceType | INVALID Invalid value |
public static class ConnectionInfo.Builder
Builder class to generate the ConnectionInfo class instance.
Public constructor |
---|
ConnectionInfo.Builder() Create a builder for the information to connect a scale |
Public methods | |
---|---|
ConnectionInfo.Builder | setBleInfo(string
identifier) Set the BLE connection information (specify the mac address) In case of communicate with scale with BLE, please set connection information with this method. |
ConnectionInfo.Builder | setUsbInfo(string
identifier) Set the USB connection information (specify the device identifier which could be gotten from scan result.) If a device communicate with our scale with USB, please set connection information with this method. |
ConnectionInfo.Builder | setBaudRate(int
baudRate) Set the baud rate information In case of USB interface, check and set the communication settings of the device to be used. |
ConnectionInfo | build() Return generated ConnectionInfo class instance. |
public abstract class Scale
This class is used to communicate with a scale.
The following constants is used for ScaleCallback class as status code of scale.
Constants | |
---|---|
int | CONNECT_SUCCESS Connect to a scale operation completed successfully |
int | CONNECT_NOT_AVAILABLE The host device does not have the function to connect to a scale |
int | CONNECT_ALREADY_CONNECTED Attempt to connect to a scale even though already connected to it |
int | CONNECT_TIMEOUT Connect to a scale operation is failed due to timeout |
int | CONNECT_NOT_SUPPORTED Attempt to connect to not supported device |
int | CONNECT_NOT_GRANTED_PERMISSION Attempt to connect to not permission device |
int | CONNECT_NOW_CONNECTING Now connecting by other request |
int | CONNECT_READ_WRITE_ERROR Read or write error is occurred |
int | CONNECT_UNEXPECTED_ERROR Connect to a scale operation is failed due to unexpected error |
int | DISCONNECT_SUCCESS Disconnect a scale operation completed successfully |
int | DISCONNECT_NOT_CONNECTED Attempt to disconnect a scale even though not connected to it |
int | DISCONNECT_UNEXPECTED_DISCONNECTION Scale is disconnected unexpectedly |
int | DISCONNECT_TIMEOUT Disconnect a scale operation is failed due to timeout |
int | DISCONNECT_READ_WRITE_ERROR Read or write error is occurred |
int | DISCONNECT_UNEXPECTED_ERROR Disconnect a scale operation is failed due to unexpected error |
int | UPDATE_SETTING_SUCCESS Change scale settings operation completed successfully |
int | UPDATE_SETTING_NOT_CONNECTED Attempt to change scale settings even though scale is not connected |
int | UPDATE_SETTING_REQUEST_REJECTED Change scale settings operation is failed due to request is rejected |
int | UPDATE_SETTING_TIMEOUT Change scale settings operation is failed due to timeout |
int | UPDATE_SETTING_NOW_EXECUTING_ERROR Failed to request scale settings, other request is now executing. |
int | UPDATE_SETTING_UNEXPECTED_ERROR Change scale settings operation is failed due to unexpected error |
int | UPDATE_SETTING_NOT_SUPPORTED An unsupported command was specified. |
Public methods | |
---|---|
void | connect(ScaleCallback
callback) Connect to a scale and set callback to notify the communication result with it callback: The result will be notified to ScaleCallback#onConnect method |
void | disconnect() Disconnect a scale callback: The result will be notified to ScaleCallback#onDisconnect method |
void | updateSetting(ScaleSetting
setting) Change scale settings The result will be notified to ScaleCallback#onUpdateSetting method |
void | updateOutputConditionSetting(ScaleOutputConditionSetting
setting) Change scale output condition settings The result will be notified to ScaleCallback#onUpdateOutputConditionSetting method. Note : Once this method is executed, that state is maintained. However, the status is reset to setting menu when the balance is turned on again. In order to save the setting on the balance, please push [Menu] key and then return to the measuring mode. |
public abstract class ScaleCallback
This class is used to receive the result of processes done in the Scale class.
Public constructor |
---|
ScaleCallback() Create a ScaleCallback instance |
Public methods | |
---|---|
void | onConnect(Scale scale, int
status) Notify the execution result of Scale#connect method |
void | onDisconnect(Scale scale, int
status) Notify the execution result of Scale#disconnect method or physical disconnection |
void | onReadScaleData(Scale scale,
ScaleData scaleData) Notify that weight data is received from a scale |
void | onUpdateSetting(Scale scale,
ScaleSetting setting, int status) Notify execution result of the Scale#updateSetting method |
void | onUpdateOutputConditionSetting(Scale
scale, ScaleOutputConditionSetting setting, int
status) Notify execution result of the Scale#updateOutputConditionSetting method |
public enum ScaleSetting
This enum is used to specify the scale setting.
Constants | |
---|---|
ScaleSetting | ZeroPointAdjustment Zero Point Adjustment |
public enum ScaleOutputConditionSetting
This enum is used to specify the scale output condition setting.
Constants | |
---|---|
ScaleOutputConditionSetting | StopOutput Stop output Note : MG-T12,MG-T30 and MG-T60 is not support. |
ScaleOutputConditionSetting | ContinuousOutputAtAllTimes Continuous output at all times |
ScaleOutputConditionSetting | ContinuousOutputAtStableTimes Continuous output at stable times(Output stop at unstable times) |
ScaleOutputConditionSetting | PushDownKeyForOneTimeInstantOutput Push down [Output] key for one-time instant output Note : MG-T12,MG-T30 and MG-T60 is not support. |
ScaleOutputConditionSetting | AutoOutput Auto output Note : MG-T12,MG-T30 and MG-T60 is not support. |
ScaleOutputConditionSetting | OneTimeOutputAtStableTimes One-time output at stable times(Output stop at unstable times) Note : MG-T12,MG-T30 and MG-T60 is not support. |
ScaleOutputConditionSetting | OneTimeOutputAtStableTimesAndContinuousOutputAtUnstableTimes One-time output at stable times(Continuous output at unstable times) Note : MG-T12,MG-T30 and MG-T60 is not support. |
ScaleOutputConditionSetting | PushDownKeyForOneTimeOutputAtStableTimes Push down [Output] key for one-time output at stable times Note : MG-T12,MG-T30 and MG-T60 is not support. |
public enum ScaleType
This enum is used to specify the scale type.
Constants | |
---|---|
ScaleType | INVALID lnvalid value |
ScaleType | MGS MG-S322,MG-S1501,MG-S8200,MG-S322 USCA,MG-S1501 USCA,MG-S8200 USCA |
ScaleType | MGTS MG-T12,MG-T30,MG-T60,MG-T12 UDB,MG-T30 UDB,MG-T60 UDB |
Public methods | |
---|---|
ScaleType | getEnum(String
name) Get the ScaleType of Enum type from the String name (MGS or MGTS). |
public interface ScaleData
This interface manages weight data received from a scale.
Public methods | |
---|---|
double | getWeight() Weight |
ScaleData.Unit | getUnit() Unit of weight |
ScaleData.ComparatorResult | getComparatorResult() Result of comparator function |
ScaleData.DataType | getDataType() Type of the data |
ScaleData.Status | getStatus() Scale status |
int | getNumberOfDecimalPlaces() Number of decimal places of weight |
String | getRawString() Raw string |
public enum ScaleData.Unit
This enum is used to specify the unit of weight.
Constants | |
---|---|
ScaleData.Unit | INVALID Invalid value |
ScaleData.Unit | MG Milligram |
ScaleData.Unit | KG Kilogram |
ScaleData.Unit | G Gram |
ScaleData.Unit | CT Carat |
ScaleData.Unit | MOM Momme |
ScaleData.Unit | OZ Ounce |
ScaleData.Unit | LB Pound |
ScaleData.Unit | OZT Troy ounce |
ScaleData.Unit | DWT Penny weight |
ScaleData.Unit | GN Grain |
ScaleData.Unit | TLH Hong Kong tael |
ScaleData.Unit | TLS Singapore tael |
ScaleData.Unit | TLT Taiwan tael |
ScaleData.Unit | TO Tola |
ScaleData.Unit | MSG Mesghal |
ScaleData.Unit | BAT Baht |
ScaleData.Unit | PCS Parts counting |
ScaleData.Unit | PERCENT Percentage weighing |
ScaleData.Unit | COEFFICIENT Multiplied by Coefficient |
public enum ScaleData.ComparatorResult
This enum is used to specify the result of comparator function.
Constants | |
---|---|
ScaleData.ComparatorResult | INVALID Invalid value |
ScaleData.ComparatorResult | SHORTAGE Shortage |
ScaleData.ComparatorResult | OK Proper |
ScaleData.ComparatorResult | OVER Over |
public enum ScaleData.DataType
This enum is used to specify the type of the data.
Constants | |
---|---|
ScaleData.DataType | INVALID Invalid value |
ScaleData.DataType | NET_NOT_TARED Net weight (not tared) |
ScaleData.DataType | NET Net weight (tared) |
ScaleData.DataType | TARE Tare weight |
ScaleData.DataType | PRESET_TARE Preset tare weight |
ScaleData.DataType | TOTAL Total value |
ScaleData.DataType | UNIT Unit weight |
ScaleData.DataType | GROSS Gross |
public enum ScaleData.Status
This enum is used to specify the status of weight data.
Constants | |
---|---|
ScaleData.Status | INVALID Invalid value |
ScaleData.Status | STABLE Data stable |
ScaleData.Status | UNSTABLE Data unstable |
ScaleData.Status | ERROR Data error |
Copyright 2020 - 2024 Star Micronics Co., Ltd. All rights reserved.
Ver.1.5.1(US market only)
2024/10/31
Ver.1.5.0(US market only)
2023/10/31
Ver.1.4.0(US market only)
2021/12/20
Ver.1.3.0(US market only)
2020/04/06
Ver.1.2.0 (US market only)
2019/12/25
Ver.1.1.0 (US market only)
2019/08/19
Ver.1.0.0 (US market only)
2018/06/29