"Schreiben Sie mir für ein Glas Chips einen Barcode-Leser für Android, nur um die Ergebnisse in die Dateien und die Zeit zu schreiben, die mein Bruder braucht."Aus Interesse habe ich fertige Lösungen in js und android durchlaufen und seitdem. Ich habe ein Xiaomi-Smartphone mit einer vorgefertigten Scanneranwendung. Ich dachte, warum nicht einfach versuchen, die Scanergebnisse daraus zu ziehen? Ok, ich habe versucht, Informationen über Absichten oder vorgefertigte Anweisungen zum Abrufen von Daten vom Scanner zu googeln, aber vergebens. Es wurde beschlossen, das Anwendungsmanifest nach Absichten zu durchsuchen.Am Ende stellte sich heraus, dass es meinem Bruder nicht ging, und es war nicht notwendig, und im Allgemeinen ist eine Dose Chips teuer
- Suchen und holen Sie die APK vom Telefon ab.
adb shell ~:/pm list packages | grep scanner ~:/pm path com.xiaomi.scanner exit pull /system/priv-app/MiuiScanner/MiuiScanner.apk - Wir dekompilieren apk über einen Onlinedienst .
- Das Manifest untersuchen. Finden Sie die erste Aktion, die auftritt.
AndroidManifest.xml
- Erstellen Sie ein neues Android-Projekt und schreiben Sie einen Scanneranruf.
val intent = Intent("miui.intent.action.scanbarcode") startActivityForResult(intent, 1); - , … , , ? , . .
ScanActivity.java
.
- , EXTRA_INTENT_IS_BACKTO_THIRDAPP isBackToThirdApp.
AppUtils.java
- .
val intent = Intent("miui.intent.action.scanbarcode") intent.putExtra("isBackToThirdApp",true) startActivityForResult(intent, 1); - .
super.onActivityResult(requestCode, resultCode, data) if (resultCode==Activity.RESULT_OK){ result.setText(data?.extras?.getString("result")) } - .
- , Xiaomi
,