0
我目前正在致力於啓動程序活動(min SDK版本:7),並且偶然發現了一個嚴重問題。是否有任何高效方法由我可以訪問/打開默認應用(如撥號器,瀏覽器,短信對話列表,電子郵件客戶端,系統設置等),這是在不同的設備中找到(像三星,HTC,索尼,LG,摩托羅拉等),但有不同的軟件包名稱秒。如何在不同設備上訪問/打開默認應用程序
我知道,我可以通過調用的意圖訪問它們,比如我可以打開默認短信客戶端像這樣:
Intent intent = new Intent("android.intent.action.MAIN");
intent.setComponent(new ComponentName("com.android.mms","com.android.mms.ui.ConversationList"));
startActivity(intent);
但包名稱不同,當涉及到不同的製造商(像的那些以上提及) 即,在打開Motorola裝置的SMS客戶端的情況下的代碼改變,以便:
Intent moto_intent = new Intent("android.intent.action.MAIN");
intent.setComponent(new ComponentName("com.motorola.blur.conversations","com.motorola.blur.conversations.ui.ConversationList"));
startActivity(moto_intent);
謝謝史蒂芬,但我不想讓我的用戶到任何第三方的短信應用程序。我只想將他/她引導至設備提供的默認應用程序(本例中爲短信客戶端)。 – Sathya 2013-03-14 07:31:06
如果用戶沒有安裝任何第三方應用程序,則隱式意圖將引導他/她直接訪問該默認系統應用程序。如果用戶確實安裝了第三方應用程序,則會要求用戶做出選擇,但我不明白爲什麼會這麼糟糕。爲什麼作爲用戶被迫使用默認的系統短信應用程序時,我每天使用不同的系統?無論如何,我想你可以先嚐試明確的意圖(至少你知道的意圖),如果那些不在那裏,你可以回到隱含的意圖。 – 2013-03-14 07:40:43