NFC Appsteuerung

  • 13 Antworten
  • Letztes Antwortdatum
M

Mayofant

Neues Mitglied
0
Hallo Gemeinde,

ich suche nach einer Möglichkeit, apps per nfc nicht nur zu starten, sondern direkt zu bedienen (evtl. mit einem Makro o.ä.)

Bisher benutzte ich den "NFC Aufgaben-Launcher", aber der kann apps nur starten/beenden. Er weisst zwar eine Schnittstelle zum "Tasker" auf, aber leider kann ich den Tasker nicht auf meinem Smartphone (FAEA F1) installieren (nicht kompatibel?)...

Kann mir da bitte jemand weiterhelfen?

DANKE :smile:
 
Hab den Thread gerade erst gefunden.... ist das jetzt schon Leichenfledderei???

Ich hab das für mich so gelöst das ich mit App Inventor einfach ein kleines Programm gebastelt habe welches mir automatisch beim initialisieren SL4A ( scriptinterpreter) mit einem Script startet.
Die App inventor apk wird dann über den NFC chip gestartet, diese beginnt das Sl4a script abzuarbeiten. In diesem kannst du dann ganz nach belieben Programme starten/beenden, logische abfragen /Schleifen, Bildschirm berührungen etc simulieren
 
Puh, Script erstellen,.....und was noch alles? Und das als Laie?
Na ich weiß nicht.....

Bin ja gerne bereit das mal auszuprobieren.
Beschreibe doch mal näher Deine Vorgehensweise.

Bei mir ist es so, daß ich das App Dictaphone zwar starten kann, aber selbst dann auf den Aufnahmebutton drücken muß, dann kann ich ja gleich alles manuell starten. Das möchte ich umgehen.

Der Stoppbutton ist da momentan nicht so wichtig, vielleicht für später mal eine Variante. Ich glaube, daß ist ja so die Richtung, die der Threadersteller möchte. Also ein App nicht nur starten.
 
Hi Cynob, kannst Du nochmals hier bitte etwas dazu schreiben?
 
Öhm wie soll ich das jetzt machen? step by step? Oder wo genau hängts denn? Wenn du mirn link zum playstore eintrag gibst kann ich mir die apk ja anschauen und dir schnell was tippseln.

Gruß Cynob
 
Es geht um das oben erwähnte App Dictaphon.

Jedoch hätte ich auch noch andere Anwendungen, z.B. im Auto, die ich auch nicht nur aufrufen sondern auch noch etwas steuern möchte mittels dieser Chips.
Der Threadöffner hat es ja auch ähnlich vor wie ich.

Für mich wäre solch ein Script recht interessant anzusehen, um erstmal Einblick zu erhalten, was Du dort reinschreiben mußt, um ein App irgendwie zu steuern.
Ich gebe Dir gerne meine Email, damit Du mir mal so ein Script rübersenden kannst.
Vorauf kommt es an, damit man solch ein Script überhaupt steuern kann.
 
Ja wenn ich im Playstore nach Dictaphone suche ist allein schon der Begriff in den ersten 5 Namen vertreten ;)
 
:) Ok dann für die zweite ... achja bevor ichs vergesse... hast du root rechte auf deinem Handy?
 
Nein, root habe ich nicht obwohl ich verstärkt darüber nachdenke.
Hatte auf meinem IPhone auch den JB und möchte es dort nicht mehr missen, Aber ich habe mir die Mühe gemacht und mir diese vielen Seiten hinsichtlich root mal durchgelesen - da ist ja noch viel durcheinander.
Vorallem kommt ja jetzt noch das FW-Upgrade für das Xperia, dann scheint es alles noch etwas unsicherer zu werden.

Aber vielleicht habe ich in Dir auch noch einen Ansprechpartner, der mir den Wald vor lauter Bäumen etwas abholzt.
Denn ich benötige nur einige Funktionen mehr, die das Handling mit dem Smartphone erleichtern. Da brauch man vielleicht gar nicht nicht dieses root, wo auch die Garantiezeit verfällt. Scheinbar gibt es Unterschiede root und root.
Es würde aber hier in dem Thread zu weit führen und am Thema des Threads vorbeigehen, oder?

Trotzdem, auch wenn ich kein root habe, wäre der Einblick in solch ein Script für mich hilfreich, da ich dann überhaupt sehen kann, was auf mich zukommt.
 
Naja zum Thema rooten ja oder nein gibts noch ewig viele Threads welche das schon behandeln ( Soweit ich weiß werden iphones auch anfälliger da da irgendwas mit ssh ohne passwort gemacht wird?!?!? weiß jetzt selbst nicht genau ) Wirklich anfällig wird aber ein Gerät mMn. nicht wenn man sich vorher ein wenig damit auseinandersetzt und danach nicht jeden schrott installiert bzw. alles mit "ja mach mal abnickt". Bei Android ists ja auch so - wenn etwas Administrationsrechte benötigt ( z.B. Titanium Backup) fragt das System den Benutzer ja vorher obs das darf oder nicht - also man ist der Sache nicht so schutzlos ausgeliefert wie oft gedacht wird.

Das Problem bei unserer Sache:
Wir machen uns die debug Funktionen des Gerätes zunutze welche eigentlich nur Entwickler etc. wirklich benötigen. Da ( ganz grob ausgedrückt) ein Programm nichts vom dasein eines anderen Programmes auf Android weiß ( zuständig dafür ist das ganze dalvik/java geraffel) braucht man root rechte um dort eingreifen zu können. ( Wär ja auch zu toll wenn irgend ein Spiel in z.B. der onlinebankingapp rumpfuschen könnte).

So ich mach noch kurz was fertig und dann lad ich dir hier mal was hoch.
Bg
 
So wie ichs gemacht hab:

Auf dem gerooteten Phone SL4A installiert android-scripting - Scripting Layer for Android brings scripting languages to Android. - Google Project Hosting

debugging sollte man auch in den Entwickleroptionen einschalten ;)

So bei Bedarf und nur der Vollständigkeit halber noch die busybox aus dem playstore installieren ( also den Installer dafür gibts dort) https://play.google.com/store/apps/details?id=stericson.busybox

So nun hab ich mit Googles Android App Inventor mir ein kleines Programm zusammengeklickt:

Man braucht nur einen Activity Starter anlegen welcher SL4A im Hintergrund ausführt und dann das Script abarbeitet. Sobald SL4A ausgeführt wird kann sich unser Progrämmchen dann wieder verabschieden.
Die Werte für den Activity Starter bekommste von dort: AppInventor - android-scripting - How to launch SL4A scripts from App Inventor - Scripting Layer for Android brings scripting languages to Android. - Google Project Hosting
In den Bildern die Ich als Anhang eingefügt hab siehst du wie es aussehen muss in App Inventor.... der Rote Pfeil (sorry für mein unglaubliches Können in paint) zeigt dahin wo der Pfad der zum Script eingetragen werden soll.
In meinem Beispiel ist das der Pfad /sdcard und der name des zu startenden Scripts script.sh

Im Anhang sind auch noch die fertige apk sowie der code welchen man bei App inventor einfügen können sollte. ( habs als .tar.gz gepackt da das Forum .aia Dateien nicht akzeptiert hat).

So gleich gehts weiter :D
 

Anhänge

  • wall1.png
    wall1.png
    77,2 KB · Aufrufe: 407
  • wall1-5.png
    wall1-5.png
    80,5 KB · Aufrufe: 358
  • wall2.png
    wall2.png
    59,8 KB · Aufrufe: 396
  • NFC_Starter.apk
    1,2 MB · Aufrufe: 194
  • NFC_Starter_source.tar.gz
    1,8 KB · Aufrufe: 140
Zuletzt bearbeitet:
So weiter gehts:

Mittels SDK auf dem Rechner die android adb angesprochen und logcat ausgeführt.
Dann auf dem Androiden dein Programm https://play.google.com/store/apps/details?id=de.fun2code.android.voicerecord&hl=de gestartet und nach der Zeile gesucht:

Code:
I/ActivityManager(  536): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 pkg=de.fun2code.android.voicerecord cmp=de.fun2code.android.voicerecord/.VoiceRecordActivity bnds=[28,243][175,406]} from pid 964
Wichtig für uns ist zunächst das hier:

Code:
pkg=de.fun2code.android.voicerecord 
cmp=de.fun2code.android.voicerecord/.VoiceRecordActivity
Jetzt wissen wir nämlich wie wir das Programm aus einem Script bzw. aus der Konsole heraus starten können.
zum kurzen nachlesen: How to start an Android application from the command line? - Stack Overflow

Somit sieht unser Fragment so aus:

Code:
am start -n de.fun2code.android.voicerecord/de.fun2code.android.voicerecord.VoiceRecordActivity
So um jetzt die Aufname starten zu können könnte man die apk entpacken und die Manifest.xml durchlesen. Wenn man dort den passenden Intent findet kann man die Aufnahme auch so starten. Das ist uns jetzt aber für den Anfang zu umständlich deswegen geben wir dem Gerät einfach ein paar Tastendrücke über die Konsole mit.

Eine Übersicht gibts dort: android - adb shell input events - Stack Overflow

Am einfachsten geht das ganze wenn man sein Gerät mit dem PC gekoppelt lässt und ( wenn man eh über die shell das Programm gestartet hat kann mans gleich so lassen und die Eingaben testen) die Befehle über die adb schickt.

Ich mach das jetzt einfach mal mit der Aufnahme App:
- also diese ist gestartet und sichtbar.

Oben hat man ne Liste mit unterschiedlich vielen Einträgen - da wir jetzt von oben links nach unten rechts arbeiten müssen ist das schlecht - wir können nicht einfach mit den "Pfeiltasten" dorthin navigieren. Beim PC gibts da aber ja die Tabulator Taste (links neben q ) Die gibts in unserer Liste auch :)

Also heißt der nächste Codefetzen:

Code:
input keyevent 61
Dann sind wir auf dem Menü Button - somit das ganze insgesammt 3x machen. Vom Menü Button auf diesen Info Button und der nächste ist dann unser "Record" Button.

Dann müssen wir ja noch Enter drücken damit die Aufnahme startet

Code:
input keyevent 66
So jetzt haben wir alles grob zusammen was wir fürs erste brauchen.

Das ganze fügen wir jetzt zu einem shellscript zusammen. Die erste zeile ist die Auswahl des Interpreters - die muss mit rein. Und alles hinter "###" ist Kommentar von mir. Wenn du das abschreibst solltest du kein Windows verwenden oder entsprechende Programme verwenden welche die Zeilenumbrüche nicht versauen. ( z.B. sowas Notepad++ - Download - CHIP )

Code:
#! /system/bin/sh
### damit das System weiß welchen Interpreter es verwenden soll


### Starte Programm
am start -n de.fun2code.android.voicerecord/de.fun2code.android.voicerecord.VoiceRecordActivity


### warte 3 Sekunden damit das Proggi Zeit zum starten hat ( der Wert kann angepasst werden wenn man möchte)
sleep 3


### so jetzt "tab Sprung nach unten bis zum "Record button" - Das && sagt dem System das es den nächsten Befehl erst ausführen soll wenn
### der vorherige erfolgreich beendet wurde. Damit gehen wir sicher das sich nichts überschneidet und es wird auch schneller abgearbeitet
### da das hier Zeilenweise geht :)
input keyevent 61 &&input keyevent 61 && input keyevent 61 


### so nochmal kurz Ruhen ( Nachkommastellen werden mit einem Punkt angegeben
sleep 0.1


### Jetzt noch Eingabe drücken zum Aufnehmen
input keyevent 66


### Jetzt da alles geschafft ist das Script noch beenden
exit
Das ganze in Kurz:

Code:
#! /system/bin/sh

am start -n de.fun2code.android.voicerecord/de.fun2code.android.voicerecord.VoiceRecordActivity && sleep 3
input keyevent 61 && input keyevent 61 && input keyevent 61 && sleep 0.1 && input keyevent 66
exit
Das ganze Speichern wir als script.sh Datei und legen es uns auf die sd Karte.
Die SD Karte kann das zwar nicht aber solltest du deine Scripte z.B. in /data ablegen solltest du sie ausführbar machen ( über Konsole z.b. "chmod 755 /data/script.sh")

So das ist jetzt ja nur mal das Grundgerüst - da geht noch einiges mehr :)
Beim ersten Starten von SL4A muss man natürlich root bestätigen.

Was mir gerade noch so einfällt - wenn das Script zicken macht als root zu laufen:

Einfach noch ein Script dazwischen Schalten welches dann unser eigentliches script ausführt.
Code:
#! /system/bin/sh

su -c "sh /sdcard/script.sh
exit
So das wars erstmal für den Anfang :D
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: hermz
Hammer!
Sorry, mein Lieber, aber das sind ja für mich total die "Bömischen Wälder".
Zumal ich noch kein root machen möchte.

Da Du Dir aber soviel Mühe beim Schreiben gemacht hast, habe ich es mir zumindest alles mal durchgelesen.

Vielleicht hat jemand anderes mehr davon als ich.......
Schade eigentlich!
 

Ähnliche Themen

Einfachpeer
Antworten
3
Aufrufe
255
Einfachpeer
Einfachpeer
Jumper04
Antworten
3
Aufrufe
1.306
Jumper04
Jumper04
W
Antworten
0
Aufrufe
769
__W__
W
Zurück
Oben Unten