android createChooser 过滤多余app

比如说,想发送带有附件的邮件,然后打开邮件的客户端,结果弹出一大群的不相关的app,比如蓝牙啊,Skype啊。


直接上代码


Intent iEmail = new Intent(android.content.Intent.ACTION_SEND);
            iEmail.setType("message/rfc822");

            try {

                List<ResolveInfo> resInfo = getActivity().getPackageManager().queryIntentActivities(iEmail, 0);
                if (!resInfo.isEmpty()) {
                    List<Intent> targetedShareIntents = new ArrayList<Intent>();
                    for (ResolveInfo info : resInfo) {
                        Intent targeted = getEmailIntent();//getEmailIntent()这里是自己需求intent
                        ActivityInfo activityInfo = info.activityInfo;
                        if (activityInfo.name.contains("mail")) {
                            targeted.setPackage(activityInfo.packageName);
                            targeted
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Android Studio中实现发送邮件应用程序,需要遵循以下步骤: 1. 在Android Studio中创建新的Android项目。 2. 在布局文件中添加EditText,Button和TextView组件。 3. 在AndroidManifest.xml文件中添加Internet权限。 4. 编写Java代码以实现发送电子邮件功能。 以下是一个简单的示例代码,可用于发送邮件: ``` import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import android.net.Uri; public class MainActivity extends AppCompatActivity { EditText editTextTo, editTextSubject, editTextMessage; Button sendButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editTextTo = (EditText) findViewById(R.id.editTextTo); editTextSubject = (EditText) findViewById(R.id.editTextSubject); editTextMessage = (EditText) findViewById(R.id.editTextMessage); sendButton = (Button) findViewById(R.id.sendButton); sendButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String to = editTextTo.getText().toString(); String subject = editTextSubject.getText().toString(); String message = editTextMessage.getText().toString(); Intent emailIntent = new Intent(Intent.ACTION_SEND); emailIntent.setData(Uri.parse("mailto:")); emailIntent.setType("text/plain"); emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {to}); emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject); emailIntent.putExtra(Intent.EXTRA_TEXT, message); try{ startActivity(Intent.createChooser(emailIntent, "Send email using...")); } catch (Exception e){ Toast.makeText(MainActivity.this, "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show(); } } }); } } ``` 在此代码中,我们使用了Android的Intent类来发送电子邮件。此Intent包含电子邮件地址,主题和消息正文。我们还使用了startActivity方法来启动电子邮件应用程序。 请注意,要使此代码正常工作,您需要在AndroidManifest.xml文件中添加以下权限: ``` <uses-permission android:name="android.permission.INTERNET" /> ``` 这将允许您的应用程序连接到互联网并发送电子邮件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值