`
gryphone
  • 浏览: 434700 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Intent.createChooser() 妙用

阅读更多

Intent.createChooser(ntent target, CharSequence title)

 

 

其实 大家对该功能第一影响就是ApiDemo 里面的 其只有区区几行代码  提取为:

 

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/*");
startActivity(Intent.createChooser(intent, "Select music"));

 

 

执行之 会弹出一个对话框 效果为:

 

 

 

 

 

 

其实 对于这段代码 大家应该都能猜出什么意思  现自己模拟并理解之

 

 

 

[代码]

 

1. 定义TestActivity 用于根据传入Uri  播放目标

 

public class TestActivity extends Activity {
	
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        this.setTitle("TestActivity");
        
        Intent i = this.getIntent();
        
        Uri u = i.getData();
        
        try {
        	playMusic(u);
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SecurityException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public void playMusic(Uri uri) throws IllegalArgumentException, SecurityException, IllegalStateException, IOException{
		MediaPlayer mp = new MediaPlayer();
		mp.setDataSource(this, uri);
		mp.prepare();
        mp.start();
	}
}

 

 

 

2. 在AndroidManifest 注册TestActivity

 

<activity android:name=".TestActivity"
                  android:label="TestActivity">
            <intent-filter>
				<action android:name="android.intent.action.GET_CONTENT" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.OPENABLE" />
                 <data android:mimeType="audio/music1" />
            </intent-filter>
        </activity>

 

 

 

3. 使用TestActivity

 

public void sendChooser(){
    	Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        
        intent.setDataAndType(Uri.parse("file:///sdcard/DCIM/cc.mp3"), "audio/music1");

        startActivity(Intent.createChooser(intent, "Select music1 app"));
    }

 

 

4. emulator 运行截图:

 

 

 

 

 

 

分享到:
评论

相关推荐

    用Intent.ACTION_SEND进行分享

    `startActivity(Intent.createChooser(shareIntent, "请选择分享方式"))`这一行代码会启动一个分享对话框,显示所有能够接收"text/plain"类型数据的应用,用户可以从中选择一个来完成分享。 在实际开发中,我们可能...

    android-将内容分享到自己的app

    像qq,微信那样 调用代码Intent intent=new Intent(Intent.ACTION_SEND); intent.setType("text/plain");... startActivity(Intent.createChooser(intent, "请选择")); 可以选择分享到自己的app

    Android利用Intent.ACTION_SEND进行分享

    例如,我们可以使用Intent.createChooser方法来选择要分享到的App。 在使用Intent.ACTION_SEND进行分享时,我们需要注意以下几点: 1. 设置合适的MIME类型,以便正确地传递分享的数据。 2. 使用Intent.putExtra...

    wallpaperdemo

    例如,如果你有一个`Intent`用来发送邮件,但系统中有多个邮件应用可供选择,`createChooser()` 就会显示一个对话框,让用户决定用哪个应用来发送邮件。 下面我们将深入探讨`Intent.createChooser()` 的实现原理: ...

    Android使用Intent.ACTION_SEND分享图片和文字内容的示例代码

    Android 使用 Intent.ACTION_SEND 分享图片和文字内容的示例代码详解 Android mobile 操作系统中,Intent.ACTION_SEND 是一个非常常用的 Action,主要用于实现分享功能,例如分享图片、文字内容等。在本文中,我们...

    Android 常用的Intent的URI及示例

    startActivity(Intent.createChooser(intent, "选择邮件客户端")); ``` ### 7. 发送短信 通过`ACTION_VIEW`结合`tel:`协议,可以预填充短信内容。 ```java Uri uri = Uri.parse("tel:10086"); Intent intent = ...

    Android利用intent实现分享功能

    本文将详细介绍如何使用Android的`Intent`机制来简化分享流程。 #### 简单Intent构建 在Android中,`Intent`是一种消息对象,它用于启动活动或服务,也可以用于传递数据。为了实现分享功能,我们需要创建一个`...

    Android Intent的几种用法全面总结

    startActivity(Intent.createChooser(it, "Choose Email Client")); ``` 或同时设置抄送人: ```java Intent it = new Intent(Intent.ACTION_SEND); String[] tos = {"me@abc.com"}; String[] ccs = {"you@abc.com"}...

    android intent使用定义标题

    可以使用 Intent.createChooser() 的方法来创建 Intent,并传入想要的 Sting 作为标题。 以wallpaper 选择框为例,当在Launcher workspace的空白区域上长按,会弹出wallpaper的选择框,选择框的标题为”Choose ...

    intent的几种常用用法.pdf

    Intent的构建和使用需要根据具体需求进行定制,同时,为了确保用户体验,通常会使用`Intent.createChooser()`创建一个选择器,让用户可以选择适合的APP来处理Intent。总之,理解并熟练掌握Intent的用法是Android开发...

    android中完成分享功能(邮件或者短信方式)

    - 同样,使用`startActivity(Intent.createChooser(intent, "分享到..."))`显示选择器。 ```java String phoneNumber = "1234567890"; Intent smsIntent = new Intent(Intent.ACTION_SENDTO); smsIntent.setData...

    android Intent实例

    Intent.createChooser(returnIt, "Choose Email Client"); ``` 以上代码创建了一个完整的邮件发送`Intent`,包括收件人、抄送人、邮件主题和内容等信息。 ##### 10. 发送短信 ```java Uri smsUri = Uri.parse(...

    安卓的一键分享

    通常,使用`Intent.createChooser(intent, "分享到")`会创建一个分享对话框,展示所有可接收此Intent的应用,用户可以选择一个来完成分享操作。如果你想自定义分享界面,也可以不使用Intent.createChooser,而是手动...

    Android源码——Intent切换.zip

    - 跳转到设置:使用Intent.createChooser()可以让用户选择任何能够发送电子邮件的应用,比如Gmail或Outlook。 总之,Intent是Android系统中极其关键的组件,理解和掌握Intent的使用对于Android开发至关重要。通过...

    androidIntent使用技巧.pdf

    startActivity(Intent.createChooser(intent, "Share Image")); ``` 以上仅展示了部分常见的Intent用法,实际上Intent的功能远不止这些,比如启动其他应用的特定Activity、启动服务、发送广播等。在实际开发中,...

    system-Intent

    startActivity(Intent.createChooser(intent, "选择邮件应用")); ``` 4. **打开系统设置**:可以使用ACTION_SETTINGS来打开系统的设置应用。 ```java Intent intent = new Intent(Settings.ACTION_SETTINGS); ...

    Android发送电子邮件及附件源码

    使用`Intent.createChooser()`方法创建一个邮件应用选择器,这样用户可以选择他们喜欢的邮件客户端来发送邮件。如果不指定选择器,系统可能会默认使用已设置的邮件应用。 5. **处理权限** 在Android 6.0及以上...

Global site tag (gtag.js) - Google Analytics