Android筆記九.Intent異常處理及常用系統調用

來源:互聯網
上載者:User

標籤:android開發   應用程式   

Intent異常處理及常用系統調用Jiangdg_VIPhttp://blog.csdn.net/u012637501 一、Intent異常處理     當Intent對象啟動組件或應用時,會由於組件的設定錯誤或者應用沒有安裝會導致異常。一般來說,應用出現異常後會異常退出。因為,為了不影響我們開發的應用程式正常使用,可以通過try....catch方法來處捕獲異常或者捕獲一個指定的異常,在異常處理模組作相應的處理(比如Toast提示)。如下所示:    try {
Intent intent=new Intent();intent.setClassName("com.tencent.mm","com.tencent.mm.app.MMApplication");startActivity(intent);
         }     catch (Exception e) {          Log.i("異常標籤",e);//不要用e.printStackTrace();Android一般都不提倡使用      }比如,當Intent對象找不到指定的Activity時會出現ActivityNotFoundException異常,我們可以這樣處理:try {
Intent intent=new Intent();intent.setClassName("com.tencent.mm","com.tencent.mm.app.MMApplication");startActivity(intent);
 }catch (ActivityNotFoundException e) {     Toast.makeText( PocketSphinxDemo.this, "正在啟動用戶端,請稍後...", Toast.LENGTH_SHORT).show();} 二、常用系統調用    由於項目的需要,自己收集和總結了一些使用intent啟動系統程式原始碼,4.0系統親測都可以使用,分享一下共同學習吧。
(1)撥打到電話     Toast.makeText( PocketSphinxDemo.this, "正在啟動撥號器,請稍後...", Toast.LENGTH_SHORT).show();     Intent intent1=new Intent(); //建立一個intent     intent1.setAction(Intent.ACTION_DIAL);//設定intent的Action屬性     intent1.setData(Uri.parse("tel://"));//設定intent的Date屬性     startActivity(intent1);//啟動Activity//啟動Activity(2)開啟瀏覽器     try{      Toast.makeText( PocketSphinxDemo.this, "正在啟動瀏覽器,請稍後...", Toast.LENGTH_SHORT).show();      Uri uri=Uri.parse("http://www.baidu.com"); //將字串轉換為uri對象      Intent intent2=new Intent(Intent.ACTION_VIEW,uri);//建立一個同時指定Action屬性和Data屬性的intent      intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);      startActivity(intent2); //啟動Activity     }catch(ActivityNotFoundException e)     {              Toast.makeText(PocketSphinxDemo.this, " 啟動'瀏覽器'異常!\n請檢查是否安裝了該應用.", Toast.LENGTH_SHORT).show();     }(3)開啟地圖     try{      Toast.makeText( PocketSphinxDemo.this, "正在開啟地圖,請稍後...", Toast.LENGTH_SHORT).show();      Uri uri=Uri.parse("geo:38.899533,-77.036476");//將字串轉換為uri對象      Intent intent3=new Intent();      intent3.setAction(Intent.ACTION_VIEW);      intent3.setData(uri);      intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);      startActivity(intent3);       }     catch(ActivityNotFoundException e)     {               Toast.makeText(PocketSphinxDemo.this, " 啟動'地圖'異常!\n請檢查是否安裝了該應用.", Toast.LENGTH_SHORT).show();     }           (3)編輯簡訊(調用傳送簡訊程式)     Toast.makeText( PocketSphinxDemo.this, "正在開啟簡訊,請稍後...", Toast.LENGTH_SHORT).show();     Intent intent4=new Intent(Intent.ACTION_VIEW);//建立一個帶Action屬性的intent     intent4.setType("vnd.android-dir/mms-sms");     startActivity(intent4);(4)查看連絡人     Toast.makeText( PocketSphinxDemo.this, "正在啟動連絡人,請稍後...", Toast.LENGTH_SHORT).show();     Intent intent5 = new Intent(Intent.ACTION_VIEW, ContactsContract.Contacts.CONTENT_URI);     startActivity(intent5);(5)開啟相機     Toast.makeText( PocketSphinxDemo.this, "正在啟動相機,請稍後...", Toast.LENGTH_SHORT).show();      Intent intent7=new Intent();     intent7.setAction(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);//啟動相機app     startActivity(intent7);(6)開啟圖庫     Toast.makeText( PocketSphinxDemo.this, "正在開啟圖庫,請稍後...", Toast.LENGTH_SHORT).show();      Intent intent8 = new Intent();     intent8.setType("image/*");     intent8.setAction(Intent.ACTION_GET_CONTENT);     startActivity(intent8);(7)開啟計算機      Toast.makeText( PocketSphinxDemo.this, "正在啟動計算機,請稍後...", Toast.LENGTH_SHORT).show();     Intent intent11 = new Intent();     intent11.setClassName("com.android.calculator2","com.android.calculator2.Calculator");//調用setClassName指定了啟動哪個應用程式     startActivity(intent11);(8)開啟系統設定      Intent intentSet= new Intent(Settings.ACTION_SETTINGS);     startActivity(intentSet);(9)開啟時鐘     try{     Intent intentclock=new Intent();              intentclock.setClassName("com.android.deskclock", "com.android.deskclock.DeskClock");              startActivity(intentclock);     }     catch(ActivityNotFoundException e)      {               Toast.makeText(PocketSphinxDemo.this, " 啟動'時鐘'異常!\n請檢查是否安裝了該應用.", Toast.LENGTH_SHORT).show();     }(10)開啟檔案管理工具  try{        Intent intentFile=new Intent();        intentFile.setAction(Intent.ACTION_VIEW);       intentFile.setType("text/plain");      startActivity(intentFile);     }catch(ActivityNotFoundException e)     {         Toast.makeText(PocketSphinxDemo.this, " 啟動'檔案管理工具'異常!\n請檢查是否安裝了該應用.", Toast.LENGTH_SHORT).show();     }(11)開啟QQtry{       Toast.makeText( PocketSphinxDemo.this, "正在開啟QQ聊天工具,請稍後...", Toast.LENGTH_SHORT).show();      Intent intent12=new Intent();      intent12.setClassName("com.tencent.mobileqq","com.tencent.mobileqq.activity.SplashActivity");     intent12.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     startActivity(intent12);     }  catch(ActivityNotFoundException e)  {       Toast.makeText(PocketSphinxDemo.this, " 啟動'QQ'異常!\n請檢查是否安裝了該應用.", Toast.LENGTH_SHORT).show();  }(12)開啟  try{        Toast.makeText( PocketSphinxDemo.this, "正在啟動用戶端,請稍後...", Toast.LENGTH_SHORT).show();      Intent intent4=new Intent();       intent4.setClassName("com.tencent.mm","com.tencent.mm.ui.LauncherUI");       intent4.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);       startActivity(intent4);  }  catch(ActivityNotFoundException e)  {       Toast.makeText(PocketSphinxDemo.this, " 啟動''異常!\n請檢查是否安裝了該應用.", Toast.LENGTH_SHORT).show();  }(13)重啟手機 String cmd = "su -c reboot";  try {          Toast.makeText(PocketSphinxDemo.this, "正在重啟手機,請稍後...", Toast.LENGTH_SHORT).show();           Runtime.getRuntime().exec(cmd);     } catch (IOException e) {            // TODO Auto-generated catch block           new AlertDialog.Builder(PocketSphinxDemo.this).setTitle("Error").setMessage(                                          e.getMessage()).setPositiveButton("OK", null).show();                 }

Android筆記九.Intent異常處理及常用系統調用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.