Android Java, настройка текста поля вне приложения - PullRequest
0 голосов
/ 03 декабря 2018

В настоящее время я пишу приложение для Android, которое позволит пользователю вводить результат отсканированного штрих-кода в поле за пределами приложения.

Приложение будет просто плавающей кнопкой, которая при нажатииоткроет экран камеры, который сканирует и считывает штрих-код, на который указывают, и сохранит результат как намерение.

При использовании этой плавающей кнопки пользователь в основном будет работать с Chrome.

Вопрос: Можно ли установить текст текущего поля в фокусе вне приложения в результате сканирования штрих-кода?

Яиспользуя следующие библиотеки: - com.google.zxing: core: 3.3.3 - com.journeyapps: zxing-android-embedded: 3.5.0@aar

Текущий код:

public class MainActivity extends AppCompatActivity {

FloatingActionButton fabScan;

TextView textViewScanResult;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final Activity activity = this;

    textViewScanResult = findViewById(R.id.textViewScan);

    fabScan = findViewById(R.id.floatingActionButton_scan);

    fabScan.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            IntentIntegrator integrator = new IntentIntegrator(activity);
            integrator.setDesiredBarcodeFormats(IntentIntegrator.ALL_CODE_TYPES);
            integrator.setPrompt("Scan Barcode");
            integrator.setCameraId(0);
            integrator.setBeepEnabled(true);
            integrator.setBarcodeImageEnabled(false);
            integrator.setOrientationLocked(false);
            integrator.initiateScan();

        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);

    if (result != null) {

        if (result.getContents() == null) {
            Toast.makeText(getApplicationContext(), "nothing", Toast.LENGTH_SHORT).show();
        } else {
            textViewScanResult.setText(result.getContents());
        }

    } else {

        super.onActivityResult(requestCode, resultCode, data);

    }
}

В настоящее время я только устанавливаю textView как результат сканирования.

1 Ответ

0 голосов
/ 03 декабря 2018

попробуйте установить намерение браузера с содержимым результата.

@ Переопределить защищенный void onActivityResult (int requestCode, int resultCode, @Nullable Intent data) {

IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);

if (result != null) {

    if (result.getContents() == null) {
        Toast.makeText(getApplicationContext(), "nothing", Toast.LENGTH_SHORT).show();
    } else {
        textViewScanResult.setText();

         //here
         Intent intent = new Intent(Intent.ACTION_VIEW, 
         Uri.parse("http://www.stackoverflow.com")); //change url to google
         intent.putExtra(result.getContents().toString());
         startActivity(intent);
    }

} else {

    super.onActivityResult(requestCode, resultCode, data);

}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...