Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 仅通过电子邮件共享图像_Android_Android Intent - Fatal编程技术网

Android 仅通过电子邮件共享图像

Android 仅通过电子邮件共享图像,android,android-intent,Android,Android Intent,我制作了一个应用程序,用户在其中打开相机并捕获图像。现在我希望通过电子邮件直接共享该图像。为此,我使用了intents。但我的问题是,当用户finsh捕获图像时,有多种选项,如whatsap、google、gmail、,hike等。我只希望用户只通过电子邮件而不是与其他应用程序共享图像 代码 我建议过滤用户可用于共享文件的选项,并将其限制为仅限于电子邮件应用程序 尝试类似的方法: Intent emailIntent = new Intent(); emailIntent.setActi

我制作了一个应用程序,用户在其中打开相机并捕获图像。现在我希望通过电子邮件直接共享该图像。为此,我使用了intents。但我的问题是,当用户finsh捕获图像时,有多种选项,如whatsap、google、gmail、,hike等。我只希望用户只通过电子邮件而不是与其他应用程序共享图像

代码


我建议过滤用户可用于共享文件的选项,并将其限制为仅限于电子邮件应用程序

尝试类似的方法:

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);   
Intent emailIntent=newintent();
emailIntent.setAction(Intent.ACTION\u SEND);
emailIntent.putExtra(Intent.EXTRA_TEXT,//电子邮件正文);
emailIntent.putExtra(Intent.EXTRA_SUBJECT,//email SUBJECT);
//将图像添加到电子邮件
PackageManager pm=getPackageManager();
Intent sendIntent=新的Intent(Intent.ACTION\U SEND);
setType(“image/jpg”);
Intent openInChooser=Intent.createChooser(emailIntent,resources.getString(R.string.share\u chooser\u text));
List resInfo=pm.querytentActivities(sendIntent,0);
List intentList=new ArrayList();
对于(int i=0;i
首先将图像保存在SD卡或电话商店中,然后发送电子邮件如果先生我不想保存该img,只需通过电子邮件直接共享即可。这很好,但不直接通过电子邮件发送图像。好的,您不需要将图像保存在SD卡中,然后从位图中的url下载图像,然后通过电子邮件发送位图。Gmail和hotmail呢?
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);