Hi!
I try to use BroadCastReceiver for a new project because I must "capture" some data that arrives from a scanner of barcode. On device's SDK, I found sample for register a broadcast receiver.
In B4A's site I had download BroadcastReceiver 2.0, but I could not make.
The SDK's sample is:
I try to translate (like tutorial explain) in a service:
I don't understand how use a "putExtra" method and how read data, using "getStringExtra" or similar.
The OnReceive event raised.
Have any idea?
Best regards!
I try to use BroadCastReceiver for a new project because I must "capture" some data that arrives from a scanner of barcode. On device's SDK, I found sample for register a broadcast receiver.
In B4A's site I had download BroadcastReceiver 2.0, but I could not make.
The SDK's sample is:
B4X:
private void registerBarcodeScannerBroadcastReceiver() {
//Enable the Output via API mode; do not add a line feed; turn Good Read LED on
Intent intent = new Intent ("ACTION_BAR_SCANCFG");
intent.putExtra("EXTRA_SCAN_MODE", 3); i
ntent.putExtra("EXTRA_SCAN_AUTOENT", 0);
intent.putExtra("EXTRA_SCAN_NOTY_LED", 1);
sendBroadcast(intent); registerReceiver(barcodeScannerBroadcastReceiver, new IntentFilter("nlscan.action.SCANNER_RESULT"));
}
private void unregisterBarcodeScannerBroadcastReceiver() { unregisterReceiver(barcodeScannerBroadcastReceiver);
}
private BroadcastReceiver barcodeScannerBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String scanResult_1=intent.getStringExtra("SCAN_BARCODE1");
final String scanStatus = intent.getStringExtra("SCAN_STATE");
if (null==scanResult_1 || null==scanStatus || scanResult_1.isEmpty()
|| scanStatus.isEmpty()) {
return; }
if ("ok".equals(scanStatus)) {
tvBarcode.setText(scanResult_1);
int codeId = intent.getIntExtra("SCAN_BARCODE_TYPE", -1);
tvCodeId.setText(""+codeId);
}
}
};
I try to translate (like tutorial explain) in a service:
B4X:
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim Broadcast As BroadCastReceiver
End Sub
Sub Service_Create
Broadcast.Initialize("BroadcastReceiver")
End Sub
Sub Service_Start (StartingIntent As Intent)
'Sample from B4A
' Broadcast.addAction("android.provider.Telephony.SMS_RECEIVED")
' Broadcast.addAction(Broadcast.SMS_RECEIVED)
' Broadcast.SetPriority(2147483647)
' Broadcast.registerReceiver("")
Broadcast.addAction("ACTION_BAR_SCANCFG")
Broadcast.addAction("EXTRA_SCAN_MODE=3")
Broadcast.addAction("EXTRA_SCAN_AUTOENT=0")
Broadcast.addAction("EXTRA_SCAN_NOTY_LED=1")
Broadcast.registerReceiver("nlscan.action.SCANNER_RESULT")
End Sub
'Sample from B4A
'Sub BroadcastReceiver_OnReceive (Action As String)
' ToastMessageShow(Action, False)
' 'can only abort when sendOrderedbroadcast is called.
' Broadcast.AbortBroadcast
'
'End Sub
Sub BroadcastReceiver_OnReceive(context As Object, intent1 As Intent)
If (intent1.HasExtra("SCAN_BARCODE1")) Then
Log("Found BARCODE1")
End If
Broadcast.AbortBroadcast
End Sub
Sub Service_Destroy
End Sub
I don't understand how use a "putExtra" method and how read data, using "getStringExtra" or similar.
The OnReceive event raised.
Have any idea?
Best regards!