標籤:開發人員面板 settings application_developm 版本差異 2.3
最近遇到了一個問題,感覺需要記錄一下。
要開啟開發人員面板,之前的代碼如下:
Intent intent = new Intent(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS);context.startActivity(intent);
在我的機器上測試通過,但是發布出去後後台反饋會了崩潰錯誤:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.APPLICATION_DEVELOPMENT_SETTINGS }
仔細看了看,出錯的機型的os版本都是2.3的,於是找了台2.3的來進行測試。確實存在這樣的錯誤,那麼說明Settings.APPLICATION_DEVELOPMENT_SETTINGS這個欄位在2.3版本裡是不成立的。
在網上查看的api裡Settings.APPLICATION_DEVELOPMENT_SETTINGS是起始於API 3,這樣的話2.3的時候已經存在了。為了搞清楚,在網上下載了2.3版本Settings的源碼,發現該action為<action android:name="com.android.settings.APPLICATION_DEVELOPMENT_SETTINGS"/>,但是api中卻顯示為“android.settings.APPLICATION_DEVELOPMENT_SETTINGS”。那麼錯誤就是在這裡出現的,至於從哪個版本開始改變的,查了一會沒有查到。由於時間問題,待以後再做詳細查詢。
不過問題該如何解決?可以做版本判斷,用不同的字串action來初始化Intnet。不過還可以用另外的方法,代碼如下:
ComponentName componentName = new ComponentName("com.android.settings", "com.android.settings.DevelopmentSettings");Intent intent = new Intent();intent.setComponent(componentName);intent.setAction("android.intent.action.View");context.startActivity(intent);
這樣的話就可以不用判斷版本。
這個問題還是因為版本差異引起的,自己在這方面一直沒有系統的學習,每次都是出現問題才去瞭解一點。這樣其實在解決問題時會比較慢,而且不會提前避免這樣的錯誤,看來該找時間好好學習一下這方面了。