2016-04-14 6 views
0

Wenn ich diesen Barcode scannenandroid ZXing Bibliothek für QR Code

enter image description here

ich dieses resultScan

enter image description here

aber ich möchte diesen Inhalt Ergebnis zu erkennen, ob es SMS oder E-Mail enthält Nachricht auf diese Weise, zum Beispiel, wenn dieser Inhalt E-Mail-Nachricht enthält, muss ich das E-Mail-Fenster öffnen, und ich möchte Felder ausfüllen wie: mit dieser E-Mail, auch Betreff und Text.

mein Code bis jetzt ist:

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
    String content = intent.getStringExtra("SCAN_RESULT"); 
} 
+0

Sie Ihre Inhalte Zeichenfolge auf Basis von Semikolon brechen können Ihre separate Nachrichten –

+0

trennen die Bündel Werte zu erhalten, und wenn Sie E-Mail finden in es dann eine E-Mail sonst SMS –

+0

Vivek Mishra was ist, wenn ich in Körper Semikolon haben – Ges

Antwort

-1

ich Ihre qrcode scannen und diese Rohtext bekommen: "MATMSG: TO: [email protected]; SUB: hallo, KÖRPER: hdfukfhdksu ;;".

public static EmailSendObject parseQrcodeText(String rawText){ 
     //todo parse; 
     EmailSendObject.recipent;//should be "[email protected]" 
     EmailSendObject.subject;//should be "hello" 
     EmailSendObject.cc; 
     EmailSendObject.content;//should be "hdfukfhdksu;" 
     return EmailSendObject; 
    } 

Schritt 2.Send E-Mail von Android-Aktion: "ACTION_SENDTO"

Schritt 1.You sollte Ihr Schema erhalten eine EmailSendObject wie unten analysieren.

+0

Lesen Sie die Frage und die Kommentare erneut: ** Meine Frage ist, wie Sie den Typ des Barcodes wie Text, URL, Adressbuch, Telefonnummer, E-Mail-Adresse erhalten. ** Es ist nichts mit E-Mail-Absichten. –

+0

EmailSendObject nicht erkennen, sollte ich eine Klasse erstellen – Ges

+0

Identifizieren dieser Art von Ergebnis (Text, URL, Adressbuch, Telefonnummer, E-Mail-Adresse), es hängt von dem Schema.Nicht automatisch erkennen! Sie sollten es durch eins analysieren one.My Antwort ist, wie E-Mail-Text zu analysieren und E-Mail senden. – banking

2

Sie müssen überprüfen, ob E-Mail TO mehr als eins haben, in diesem Beispiel habe ich nur eine E-Mail berücksichtigt. Wenn Sie die Methode email.getTos() sehen, sehen Sie, dass es sich um eine Zeichenfolge [] handelt.

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 

    Result res = new Result(scanResult.getContents(), null, null, BarcodeFormat.QR_CODE); 
    ParsedResult parserdResult = ResultParser.parseResult(res); 

    Log.d("GORIO", "TYPE: " + parserdResult.getType().toString()); 

    switch (parserdResult.getType()) { 
     case ADDRESSBOOK: 
      Log.d("GORIO", "ADDRESSBOOK: " + parserdResult.getDisplayResult()); 
      break; 
     case EMAIL_ADDRESS: 
      Log.d("GORIO", "EMAIL_ADDRESS: " + parserdResult.getDisplayResult()); 
      EmailAddressParsedResult email = (EmailAddressParsedResult) parserdResult; 

      if (email.getTos().length > 0) 
       Log.d("GORIO", "E-mail: " + email.getTos()[0] + " Subject: " + email.getSubject() + " Body: " + email.getBody()); 
      break; 
     case PRODUCT: 
      ProductParsedResult prod = (ProductParsedResult) parserdResult; 
      Log.d("GORIO", "PRODUCT: " + scanResult.getContents()); 
      break; 
     case URI: 
      URIParsedResult uri = (URIParsedResult) parserdResult; 
      Log.d("GORIO", "URI: " + scanResult.getContents()); 
      break; 
     case GEO: 
      GeoParsedResult geo = (GeoParsedResult) parserdResult; 
      Log.d("GORIO", "GEO: " + scanResult.getContents()); 
      break; 
     case TEL: 
      TelParsedResult tel = (TelParsedResult) parserdResult; 
      Log.d("GORIO", "TEL: " + scanResult.getContents()); 
      break; 
     case SMS: 
      Log.d("GORIO", "SMS: " + scanResult.getContents()); 
      SMSParsedResult sms = (SMSParsedResult) parserdResult; 
      Log.d("GORIO", "SMS: " + sms.getNumbers()); 
      break; 
     case CALENDAR: 
      Log.d("GORIO", "CALENDAR: " + scanResult.getContents()); 
      break; 
     case ISBN: 
      ISBNParsedResult isbn = (ISBNParsedResult) parserdResult; 
      Log.d("GORIO", "ISBN: " + scanResult.getContents()); 
      break; 
     default: 
    } 
} 
+0

Vielen Dank @Gorio, es war hilfreich für mich – Ges

+0

Vielen Dank @ Gorio, es war hilfreich für mich –

Verwandte Themen