2014-09-16 3 views
2

Я сделал приложение, в котором пользователь открывает камеру и захватывает изображение. Теперь я хочу, чтобы это изображение было напрямую передано по электронной почте. Для этого я использовал намерения. Но моя проблема в том, что когда пользователь finsh захват изображения нескольких вариантов приходит как whatsap, Google, Gmail, поход etc.I только хочет пользователя разделить изображение только по электронной почте не с другими приложениямиПоделиться изображением только по электронной почте

КОДЕКСОМ

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // if the result is capturing Image 
     if (requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE) { 
      if (resultCode == RESULT_OK) { 

       Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
       emailIntent.setType("image/jpg"); 
       Uri myUri = Uri.parse("file://" + fileUri.getPath()); 
       emailIntent.putExtra(Intent.EXTRA_STREAM, myUri); 
       startActivity(Intent.createChooser(emailIntent, 
         "Send mail...")); 


      } else if (resultCode == RESULT_CANCELED) { 
       // user cancelled Image capture 
       Toast.makeText(getApplicationContext(), "User cancelled image capture", Toast.LENGTH_SHORT).show(); 
      } else { 
       // failed to capture image 
       Toast.makeText(getApplicationContext(), "Sorry! Failed to capture image", Toast.LENGTH_SHORT).show(); 
      } 

     } 
    } 
+0

первый сохранить изображение в SDCard или телефона магазина затем отправить электронную почту – ckpatel

+0

Что делать, если сэр я ДНТ хочу сохранить это IMG, просто напрямую обмениваться по электронной почте – user3917131

+0

то будет хорошо, но непосредственно не отправлять изображение по электронной почте .ok вы не waana сохранить изображение в sdcard, а затем загрузить изображение с url в Bitmap, а затем отправить растровое изображение по электронной почте – ckpatel

ответ

1

Я хотел бы предложить фильтрации вариантов что пользователь может использовать общий доступ к файлу и ограничивать его только почтовым приложением.

Попробуйте что-то похожее на это:

Intent emailIntent = new Intent(); 
    emailIntent.setAction(Intent.ACTION_SEND); 
    emailIntent.putExtra(Intent.EXTRA_TEXT, // email body); 
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, // email subject); 
    // Add Image to email 

    PackageManager pm = getPackageManager(); 
    Intent sendIntent = new Intent(Intent.ACTION_SEND);  
    sendIntent.setType("image/jpg"); 


    Intent openInChooser = Intent.createChooser(emailIntent, resources.getString(R.string.share_chooser_text)); 

    List<ResolveInfo> resInfo = pm.queryIntentActivities(sendIntent, 0); 
    List<LabeledIntent> intentList = new ArrayList<LabeledIntent>();   
    for (int i = 0; i < resInfo.size(); i++) { 
     // Extract the label, append it, and repackage it in a LabeledIntent 
     ResolveInfo ri = resInfo.get(i); 
     String packageName = ri.activityInfo.packageName; 
     if(packageName.contains("android.email")) { 
      emailIntent.setPackage(packageName); 
     } 
      intentList.add(new LabeledIntent(intent, packageName, ri.loadLabel(pm), ri.icon)); 
     } 
    } 

    // convert intentList to array 
    LabeledIntent[] extraIntents = intentList.toArray(new LabeledIntent[ intentList.size() ]); 

    openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents); 
    startActivity(openInChooser); 
+0

как насчет Gmail и hotmail и ...? – AndroSco

Смежные вопросы