2015-10-31 271 views
1

我使用下面的代碼行的Android Settings.ACTION_LOCATION_SOURCE_SETTINGS用戶重定向到的位置設置屏幕導致崩潰

startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0); 

它適用於大多數設備很好,但與異常的一些三星設備崩潰:

android.content.ActivityNotFoundException:無活動發現處理 意圖{行爲= android.settings.LOCATION_SOURCE_SETTINGS}

有沒有更好的方式來處理位置設置?

回答

2

有沒有更好的方法來處理位置設置?

差不多,該活動可能不存在,所以你應該適當地處理該JavaDoc中的Settings類提及所有這些操作字符串(例如,包裹在一個ActivityNotFoundException處理您的通話startActivity())。

在這種情況下,除ACTION_SETTINGS之外沒有明顯的回退選項。您可能會顯示一個Snackbar或來自異常處理程序的對話框,指出此設備不具有對位置設置屏幕的直接第三方訪問權限。

另外請注意,startActivityForResult()在你的情況下是無用的;只需使用startActivity()即可。

+0

謝謝。我剛剛意識到,在使用系統提供的活動時,我沒有在我的應用程序的任何地方處理過ActivityNotFoundException;將做一個徹底的審查,現在:) – SlowAndSteady