【发布时间】:2013-12-16 15:30:36
【问题描述】:
我有一个实用程序方法可以检查 wifi 连接并返回 SSID。当手机连接 Wifi 时它工作正常,但当我连接移动数据连接时它会失败。即使在实用程序中使用 try catch 块也不会捕获异常。 getSystemService 行没有执行任何操作。使用调试日志进行验证。确切的代码是:
public static String getCurrentSsid(Context context) {
String ssid = null;
NetworkInfo networkInfo;
ConnectivityManager connManager;
try {
connManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
networkInfo = connManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
} catch (Exception e) {
return null;
}
if (networkInfo.isConnected()) {
final WifiManager wifiManager = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
if (connectionInfo != null) {
ssid = connectionInfo.getSSID();
}
}
return ssid;
}
logcat 仅显示我正在调用此实用程序的异步任务的错误。知道我哪里出错了吗?
11-30 21:42:38.723: W/dalvikvm(21207): threadid=14: thread exiting with uncaught exception (group=0x4165e2a0)
11-30 21:42:38.733: E/AndroidRuntime(21207): FATAL EXCEPTION: AsyncTask #1
11-30 21:42:38.733: E/AndroidRuntime(21207): java.lang.RuntimeException: An error occured while executing doInBackground()
11-30 21:42:38.733: E/AndroidRuntime(21207): at android.os.AsyncTask$3.done(AsyncTask.java:299)
11-30 21:42:38.733: E/AndroidRuntime(21207): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
11-30 21:42:38.733: E/AndroidRuntime(21207): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
11-30 21:42:38.733: E/AndroidRuntime(21207): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
11-30 21:42:38.733: E/AndroidRuntime(21207): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-30 21:42:38.733: E/AndroidRuntime(21207): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
11-30 21:42:38.733: E/AndroidRuntime(21207): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11-30 21:42:38.733: E/AndroidRuntime(21207): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
11-30 21:42:38.733: E/AndroidRuntime(21207): at java.lang.Thread.run(Thread.java:856)
11-30 21:42:38.733: E/AndroidRuntime(21207): Caused by: java.lang.NullPointerException
11-30 21:42:38.733: E/AndroidRuntime(21207): at com.example.slapp.PhoneContactsListFragment$setInviteVisibilityAsync.doInBackground(PhoneContactsListFragment.java:1069)
11-30 21:42:38.733: E/AndroidRuntime(21207): at com.example.slapp.PhoneContactsListFragment$setInviteVisibilityAsync.doInBackground(PhoneContactsListFragment.java:1)
11-30 21:42:38.733: E/AndroidRuntime(21207): at android.os.AsyncTask$2.call(AsyncTask.java:287)
11-30 21:42:38.733: E/AndroidRuntime(21207): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-30 21:42:38.733: E/AndroidRuntime(21207): ... 5 more
【问题讨论】:
-
@Hamad 感谢您格式化 logcat。
-
不客气@faizal
标签: android exception error-handling