2016-04-14 89 views
0

当我扫描条码的Android斑马线库

enter image description here

我得到这个resultScan

enter image description here

,但我想这个内容的结果,以检测它是否包含短信或电子邮件以这种方式发送消息,例如,如果此内容包含电子邮件消息,则需要打开电子邮件窗口,并且我想填写字段,例如:使用此电子邮件,也使用主题和正文。

我的代码,到现在为止是:

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

你可以把你的内容串上分号的基础上,让您的单独消息 –

+0

分开束值,如果你在那里找到的电子邮件,然后发送电子邮件其他SMS –

+0

维韦克·米什拉,如果我的身体 – Ges

回答

-1

我扫描QR码,并得到这些原始的文字: “MATMSG:TO:[email protected]; SUB:你好; BODY:hdfukfhdksu ;;”。通过Android操作

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; 
    } 

步骤2.发送电子邮件: “ACTION_SENDTO”

步骤1.You应解析Schema得到EmailSendObject如下面。

public static void sendEmail(Activity activity,EmailSendObject object){ 
    Uri uri = Uri.parse("mailto:"+object.recipient); 
    Intent intent = new Intent(Intent.ACTION_SENDTO, uri); 
    intent.putExtra(Intent.EXTRA_CC, object.cc); 
    intent.putExtra(Intent.EXTRA_SUBJECT, object.subject); 
    intent.putExtra(Intent.EXTRA_TEXT, object.content); 
    activity.startActivity(Intent.createChooser(intent, "Choose a email app!")); 
} 
+0

再次阅读问题和评论:**我的问题是如何获取条形码的类型,如文本,网址,地址簿,电话号码,电子邮件地址。**这与电子邮件意图无关。 –

+0

EmailSendObject无法识别,我应该创建一个类 – Ges

+0

识别这些类型的结果(文本,URL,地址簿,电话号码,电子邮件地址),它依赖于schema.No方式自动检测!您应该解析它一个one.My答案是如何解析电子邮件文本和发送电子邮件。 – banking

2

您需要仔细检查电子邮件地址是否有多于一个,在本例中我只考虑了一封电子邮件。如果你看到email.getTos()方法,你会看到这是一个String []。

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

非常感谢你@Gorio,这对我很有帮助 – Ges

+0

非常感谢你@Gorio,这对我很有帮助 –