| | |
| | | * @param ctx |
| | | */ |
| | | public void collectDeviceInfo(Context ctx) { |
| | | Log.i(TAG, "collectDeviceInfo Context:"+ctx); |
| | | Log.e(TAG, "collectDeviceInfo Context:"+ctx); |
| | | try { |
| | | PackageManager pm = ctx.getPackageManager(); |
| | | PackageInfo pi = pm.getPackageInfo(ctx.getPackageName(), PackageManager.GET_ACTIVITIES); |
| | |
| | | try { |
| | | field.setAccessible(true); |
| | | infos.put(field.getName(), field.get(null).toString()); |
| | | Log.d(TAG, field.getName() + " : " + field.get(null)); |
| | | //Log.d(TAG, field.getName() + " : " + field.get(null)); |
| | | } catch (Exception e) { |
| | | Log.e(TAG, "an error occured when collect crash info", e); |
| | | } |
| | |
| | | * @return 返回文件名称,便于将文件传送到服务器 |
| | | */ |
| | | private String saveCatchInfoFile(Throwable ex) { |
| | | ex.printStackTrace(); |
| | | //ex.printStackTrace(); |
| | | //Log.i(TAG, "saveCatchInfo2File Throwable:"+ex); |
| | | |
| | | StringBuffer sb = new StringBuffer(); |
| | |
| | | |
| | | Writer writer = new StringWriter(); |
| | | PrintWriter printWriter = new PrintWriter(writer); |
| | | //ex.printStackTrace(printWriter); |
| | | ex.printStackTrace(printWriter); |
| | | Throwable cause = ex.getCause(); |
| | | while (cause != null) { |
| | | //cause.printStackTrace(printWriter); |
| | |
| | | } |
| | | printWriter.close(); |
| | | String result = writer.toString(); |
| | | Log.e("TAG", result); |
| | | sb.append(result); |
| | | try { |
| | | long timestamp = System.currentTimeMillis(); |
| | |
| | | //Log.i("info", s.toString()); |
| | | } |
| | | } catch (FileNotFoundException e) { |
| | | e.printStackTrace(); |
| | | //e.printStackTrace(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | //e.printStackTrace(); |
| | | }finally{ // 关闭流 |
| | | try { |
| | | reader.close(); |
| | | fis.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | //e.printStackTrace(); |
| | | } |
| | | } |
| | | } |