Android 開發之:Intent.createChooser() 妙用 – Android移動開發技術文章_手機開發 Android移動開發教學課程

Intent.createChooser(ntent target, CharSequence title)


其實 大傢對該功能第一影響就是ApiDemo 裡面的 其隻有區區幾行代碼  提取為:


Intent intent = new Intent(Intent.ACTION_GET_CONTENT);   


  1. intent.setType(“audio/*”);   

  2. startActivity(Intent.createChooser(intent, “Select music”));  
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 {   


  1.        

  2.     @Override  

  3.     public void onCreate(Bundle savedInstanceState) {   

  4.         super.onCreate(savedInstanceState);   

  5.         setContentView(R.layout.main);   

  6.         this.setTitle(“TestActivity”);   

  7.            

  8.         Intent i = this.getIntent();   

  9.            

  10.         Uri u = i.getData();   

  11.            

  12.         try {   

  13.             playMusic(u);   

  14.         } catch (IllegalArgumentException e) {   

  15.             // TODO Auto-generated catch block   

  16.             e.printStackTrace();   

  17.         } catch (SecurityException e) {   

  18.             // TODO Auto-generated catch block   

  19.             e.printStackTrace();   

  20.         } catch (IllegalStateException e) {   

  21.             // TODO Auto-generated catch block   

  22.             e.printStackTrace();   

  23.         } catch (IOException e) {   

  24.             // TODO Auto-generated catch block   

  25.             e.printStackTrace();   

  26.         }   

  27.     }   

  28.        

  29.     public void playMusic(Uri uri) throws IllegalArgumentException, SecurityException, IllegalStateException, IOException{   

  30.         MediaPlayer mp = new MediaPlayer();   

  31.         mp.setDataSource(this, uri);   

  32.         mp.prepare();   

  33.         mp.start();   

  34.     }   

  35. }  
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<

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *