js调用android 扫码,mui通过native.js调用安卓原生类库,通过广播方式实现扫码结果的接收...

这几天通过mui来做PDA扫码接收,想通过广播的方式进行扫描结果的接收。所以通过native.js使用原生安卓类库,要实现广播必须使用安卓BroadcastReceiver类库;但是这个类库是抽象类,没法实例化;通过查询,发现mui对这个类库进行了映射;这样就可以轻松使用这个类库操作进行功能实现了;

function plusReady() {

var main = plus.android.runtimeMainActivity(); //获取activity

var context = plus.android.importClass('android.content.Context'); //上下文

var receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {

onReceive: getReceive //实现onReceiver回调函数

});

var IntentFilter = plus.android.importClass('android.content.IntentFilter');//引入过滤器

var Intent = plus.android.importClass('android.content.Intent');

var filter = new IntentFilter();

filter.addAction("lachesis_barcode_value_notice_broadcast"); //监听扫码广播

main.registerReceiver(receiver, filter); //注册监听

}

function getReceive (context, intent) {

alert(intent.getStringExtra("lachesis_barcode_value_notice_broadcast_data_string"));//获取到的值,根据需要自行处理结果

}

因为确实资料很少,费了不少时间;所以,分享给大家,希望对大家有用,谢谢;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简易的计算器的实现,使用 Java 和 Android Studio: 布局文件 `activity_main.xml`: ```xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/result_textview" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:text="0" android:textSize="32sp" android:textAlignment="center" android:padding="16dp" android:background="@android:color/darker_gray" android:textColor="@android:color/white"/> <GridLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/result_textview" android:columnCount="4" android:rowCount="5" android:padding="16dp"> <Button android:id="@+id/button_1" android:layout_width="0dp" android:layout_height="wrap_content" android:text="1" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_2" android:layout_width="0dp" android:layout_height="wrap_content" android:text="2" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_3" android:layout_width="0dp" android:layout_height="wrap_content" android:text="3" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_divide" android:layout_width="0dp" android:layout_height="wrap_content" android:text="/" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_4" android:layout_width="0dp" android:layout_height="wrap_content" android:text="4" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_5" android:layout_width="0dp" android:layout_height="wrap_content" android:text="5" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_6" android:layout_width="0dp" android:layout_height="wrap_content" android:text="6" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_multiply" android:layout_width="0dp" android:layout_height="wrap_content" android:text="*" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_7" android:layout_width="0dp" android:layout_height="wrap_content" android:text="7" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_8" android:layout_width="0dp" android:layout_height="wrap_content" android:text="8" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_9" android:layout_width="0dp" android:layout_height="wrap_content" android:text="9" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_minus" android:layout_width="0dp" android:layout_height="wrap_content" android:text="-" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_clear" android:layout_width="0dp" android:layout_height="wrap_content" android:text="C" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_0" android:layout_width="0dp" android:layout_height="wrap_content" android:text="0" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_equal" android:layout_width="0dp" android:layout_height="wrap_content" android:text="=" android:textSize="24sp" android:layout_columnWeight="1"/> <Button android:id="@+id/button_plus" android:layout_width="0dp" android:layout_height="wrap_content" android:text="+" android:textSize="24sp" android:layout_columnWeight="1"/> </GridLayout> </RelativeLayout> ``` Java 代码 `MainActivity.java`: ```java import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TextView resultTextView; private String operand1; private String operator; private String operand2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); resultTextView = findViewById(R.id.result_textview); Button button1 = findViewById(R.id.button_1); Button button2 = findViewById(R.id.button_2); Button button3 = findViewById(R.id.button_3); Button button4 = findViewById(R.id.button_4); Button button5 = findViewById(R.id.button_5); Button button6 = findViewById(R.id.button_6); Button button7 = findViewById(R.id.button_7); Button button8 = findViewById(R.id.button_8); Button button9 = findViewById(R.id.button_9); Button button0 = findViewById(R.id.button_0); Button buttonClear = findViewById(R.id.button_clear); Button buttonPlus = findViewById(R.id.button_plus); Button buttonMinus = findViewById(R.id.button_minus); Button buttonMultiply = findViewById(R.id.button_multiply); Button buttonDivide = findViewById(R.id.button_divide); Button buttonEqual = findViewById(R.id.button_equal); button1.setOnClickListener(this); button2.setOnClickListener(this); button3.setOnClickListener(this); button4.setOnClickListener(this); button5.setOnClickListener(this); button6.setOnClickListener(this); button7.setOnClickListener(this); button8.setOnClickListener(this); button9.setOnClickListener(this); button0.setOnClickListener(this); buttonClear.setOnClickListener(this); buttonPlus.setOnClickListener(this); buttonMinus.setOnClickListener(this); buttonMultiply.setOnClickListener(this); buttonDivide.setOnClickListener(this); buttonEqual.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.button_0: handleNumberInput("0"); break; case R.id.button_1: handleNumberInput("1"); break; case R.id.button_2: handleNumberInput("2"); break; case R.id.button_3: handleNumberInput("3"); break; case R.id.button_4: handleNumberInput("4"); break; case R.id.button_5: handleNumberInput("5"); break; case R.id.button_6: handleNumberInput("6"); break; case R.id.button_7: handleNumberInput("7"); break; case R.id.button_8: handleNumberInput("8"); break; case R.id.button_9: handleNumberInput("9"); break; case R.id.button_plus: handleOperatorInput("+"); break; case R.id.button_minus: handleOperatorInput("-"); break; case R.id.button_multiply: handleOperatorInput("*"); break; case R.id.button_divide: handleOperatorInput("/"); break; case R.id.button_clear: handleClearInput(); break; case R.id.button_equal: handleEqualInput(); break; } } private void handleNumberInput(String number) { if (operator == null) { if (operand1 == null) { operand1 = number; } else { operand1 += number; } resultTextView.setText(operand1); } else { if (operand2 == null) { operand2 = number; } else { operand2 += number; } resultTextView.setText(operand2); } } private void handleOperatorInput(String op) { if (operand1 != null && operand2 != null) { handleEqualInput(); } operator = op; } private void handleClearInput() { operand1 = null; operand2 = null; operator = null; resultTextView.setText("0"); } private void handleEqualInput() { if (operand1 != null && operand2 != null && operator != null) { double result = 0; double op1 = Double.parseDouble(operand1); double op2 = Double.parseDouble(operand2); switch (operator) { case "+": result = op1 + op2; break; case "-": result = op1 - op2; break; case "*": result = op1 * op2; break; case "/": if (op2 != 0) { result = op1 / op2; } break; } operand1 = String.valueOf(result); operand2 = null; operator = null; resultTextView.setText(String.valueOf(result)); } } } ``` 这个计算器可以支持加减乘除四种运算,以及清空和计算结果。需要注意的是,这个计算器的计算方式是将运算符和两个数字分别存储在三个字符串变量中,当用户点击等号时才进行计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值