android 多媒体文件关联之MIME TYPE

                在我们打开手机中的文件夹,并点击文件时,会跳出一个dialog的选项面板,上面显示的就是我们点击的文件所有关联的应用,也就是能够用这些应用来读取我们的文件;下面要描述的就是,开发者如在自己的应用中实现点击文件调出相关的应用选项面板以及点击手机中的文件关联到我们自己写的应用程序并显示在面板上。

              下面实现的是,点击手机中的音频文件如何关联到我自己写的音乐播放器!


     在手机系统自带的应用,已经对点击文件,调出能够处理文件的应用面板作一处理,下面的代码片段是用来启动面板:

     public void startSystemIntent(Context context, Uri musicUri, String type) {
		Intent intent = new Intent(Intent.ACTION_VIEW); //启动应用程序中对应的Activity
                intent.setDataAndType(musicUri , type);           //传给应用程序的数据,在这musicUri是文件的路径,type是MIME的类型用来关联我们的相关应用程序(也就是头版)
                Intent playIntent = Intent.createChooser(intent, "可选应用程序:"); //重定义系统默认的选项面板,  后面的字符串是定义面板的标题。
		
		//启动面板Dialog
              context.startActivity(playIntent);
     }

     点击了音频文件后,要关联到音乐播放器,该怎么办,继续往下走:

      


            
                
                
                
            
            
                

     			

     			
            
      

    此代码来自manifest中,相信你对第一个intent-filter 不陌生,正是系统关联启动程序的入口的标志,那么第二个intent-filter呢,没错这个就是我们上面提到的,看到action.View,

这是上面提到要启动的Activity的入口标志,

     如果 /*  换成 /x-mpeg 表示只有打开mp3文件时,才能关联到这个播放器程序,  

如果audio/* 换成 video/* 表示是只要是视频文件,不认是什么格式,都可关联。 

下面是一些其他音视频格式相关的MIME的类型:


    {".m3u", "audio/x-mpegurl"},
  {".m4a", "audio/mp4a-latm"},
  {".m4b", "audio/mp4a-latm"},
  {".m4p", "audio/mp4a-latm"},
  {".m4u", "video/vnd.mpegurl"},
  {".m4v", "video/x-m4v"},
  {".mov", "video/quicktime"},
  {".mp2", "audio/x-mpeg"},
  {".mp3", "audio/x-mpeg"},
  {".mp4", "video/mp4"},


       最后 ,当选择了该播放器应用程序处理文件,应用程序启动后,该怎么处理这个文件呢,

   

private void onNewIntent() {
    	if(getIntent()!=null)
    	{
			String musicPath = getIntent().getData().getPath(); //得到文件的路径,
			int songIndex = musicPath.lastIndexOf("/");
//			int lll = musicPath.lastIndexOf("-");
			int songNameIndex = musicPath.lastIndexOf(".");
			String songName = musicPath.substring(songIndex + 1, songNameIndex);  //得到歌曲的名字,当然还可以获取歌曲的大小、艺术家
//			String kkkString = musicPath.substring(lll+2, songNameIndex);
			Log.i("MusicPlayActivity", "" + songName+","+kkkString);
    	}
}

这个片段来自启动对应的Activity中Oncreate 中调用的方法:之后就是播放器所要处理的事。到此结束。



            

你可能感兴趣的:(android应用开发,多媒体,应用程序,手机系统,mp3,audio)