private void sendExceptionMsg(int what, Exception e) { e.printStackTrace(); Message msg = Message.obtain(); msg.obj = e; msg.what = what; queryHandler.sendMessage(msg); }
public void onSensorChanged(String sensorStr) { Log.v(TAG, "onSensorChanged : " + sensorStr); String[] fs = sensorStr.split(","); if (fs.length == 4) { acceValusW = Float.parseFloat(fs[0]) * (BASE - 10); // 获得x轴的值 acceValusX = Float.parseFloat(fs[1]) * (BASE - 10); // 获得y轴的值 acceValusY = Float.parseFloat(fs[2]) * (BASE - 10); // 获得z轴的值 acceValusZ = Float.parseFloat(fs[3]) * (BASE - 10); // 锁定整个SurfaceView Canvas mCanvas = mSurfaceHolder.lockCanvas(); try { if (mCanvas != null) { // 画笔的颜色(红) mPaint.setColor(Color.RED); // 画X轴的点 mCanvas.drawPoint(x, (int) (BASE + acceValusX), mPaint); // 画笔的颜色(绿) mPaint.setColor(Color.GREEN); // 画Y轴的点 mCanvas.drawPoint(x, (int) (BASE * 2 + acceValusY), mPaint); // 画笔的颜色(蓝) mPaint.setColor(Color.CYAN); // 画Z轴的点 mCanvas.drawPoint(x, (int) (BASE * 3 + acceValusZ), mPaint); // 画笔的颜色(huang) mPaint.setColor(Color.WHITE); // 画W轴的点 mCanvas.drawPoint(x, (int) (BASE * 4 + acceValusW), mPaint); // 横坐标+1 x++; // 如果已经画到了屏幕的最右边 // if (x > getWindowManager().getDefaultDisplay().getWidth()) { if (x > mCanvas.getWidth()) { x = 0; // 清屏 mCanvas.drawColor(Color.BLACK); } // 绘制完成,提交修改 mSurfaceHolder.unlockCanvasAndPost(mCanvas); } } catch (Exception e) { e.printStackTrace(); } finally { if (mCanvas != null) { // 重新锁一次 mSurfaceHolder.lockCanvas(new Rect(0, 0, 0, 0)); mSurfaceHolder.unlockCanvasAndPost(mCanvas); } } } }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { String sdStatus = Environment.getExternalStorageState(); if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用 Log.i("TestFile", "SD card is not avaiable/writeable right now."); return; } String name = new DateFormat().format("yyyyMMdd_hhmmss", Calendar.getInstance(Locale.CHINA)) + ".jpg"; Toast.makeText(this, name, Toast.LENGTH_LONG).show(); Bundle bundle = data.getExtras(); Bitmap bitmap = (Bitmap) bundle.get("data"); // 获取相机返回的数据,并转换为Bitmap图片格式 FileOutputStream b = null; File file = new File("/sdcard/myImage/"); if (!file.exists()) file.mkdirs(); // 创建文件夹 String fileName = "/sdcard/myImage/" + name; File photofile = new File(fileName); if (!photofile.exists()) { try { photofile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } try { b = new FileOutputStream(photofile); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b); // 把数据写入文件 } catch (Exception e) { e.printStackTrace(); } finally { try { b.flush(); b.close(); } catch (IOException e) { e.printStackTrace(); } } // 动态的改变gridview中的一个Item的内容 bitmapList.set(currentIndex, bitmap); myGalleryAdapter.notifyDataSetChanged(); updatePhoto( Long.valueOf(phoneNumberToId.get(phoneNumber.get(currentIndex))), bitmapToBytes(bitmap)); // ((ImageView) findViewById(R.id.imageView)).setImageBitmap(bitmap);// // 将图片显示在ImageView里 Intent intent = new Intent(ContactActivity.this, ContactActivity.class); this.startActivity(intent); this.finish(); } }
private boolean obbIsCorrupted(String f, String main_pack_md5) { try { InputStream fis = new FileInputStream(f); // Create MD5 Hash byte[] buffer = new byte[16384]; MessageDigest complete = MessageDigest.getInstance("MD5"); int numRead; do { numRead = fis.read(buffer); if (numRead > 0) { complete.update(buffer, 0, numRead); } } while (numRead != -1); fis.close(); byte[] messageDigest = complete.digest(); // Create Hex String StringBuffer hexString = new StringBuffer(); for (int i = 0; i < messageDigest.length; i++) { String s = Integer.toHexString(0xFF & messageDigest[i]); if (s.length() == 1) { s = "0" + s; } hexString.append(s); } String md5str = hexString.toString(); // Log.d("GODOT","**PACK** - My MD5: "+hexString+" - APK md5: "+main_pack_md5); if (!md5str.equals(main_pack_md5)) { Log.d( "GODOT", "**PACK MD5 MISMATCH???** - MD5 Found: " + md5str + " " + Integer.toString(md5str.length()) + " - MD5 Expected: " + main_pack_md5 + " " + Integer.toString(main_pack_md5.length())); return true; } return false; } catch (Exception e) { e.printStackTrace(); Log.d("GODOT", "**PACK FAIL**"); return true; } }
/** This method is called by SDL using JNI. */ public InputStream openAPKExtensionInputStream(String fileName) throws IOException { // Get a ZipResourceFile representing a merger of both the main and patch files if (expansionFile == null) { Integer mainVersion = Integer.valueOf(nativeGetHint("SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION")); Integer patchVersion = Integer.valueOf(nativeGetHint("SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION")); try { // To avoid direct dependency on Google APK extension library that is // not a part of Android SDK we access it using reflection expansionFile = Class.forName("com.android.vending.expansion.zipfile.APKExpansionSupport") .getMethod("getAPKExpansionZipFile", Context.class, int.class, int.class) .invoke(null, this, mainVersion, patchVersion); expansionFileMethod = expansionFile.getClass().getMethod("getInputStream", String.class); } catch (Exception ex) { ex.printStackTrace(); expansionFile = null; expansionFileMethod = null; } } // Get an input stream for a known file inside the expansion file ZIPs InputStream fileStream; try { fileStream = (InputStream) expansionFileMethod.invoke(expansionFile, fileName); } catch (Exception ex) { ex.printStackTrace(); fileStream = null; } if (fileStream == null) { throw new IOException(); } return fileStream; }
// 刷新ui public void refresh() { try { // 可能会在子线程中调到这方法 getActivity() .runOnUiThread( new Runnable() { public void run() { getContactList(); adapter.notifyDataSetChanged(); } }); } catch (Exception e) { e.printStackTrace(); } }
public static void reconnect1() { try { List<WifiConfiguration> list = wifiManager.getConfiguredNetworks(); for (WifiConfiguration i : list) { if (i.SSID.equals(FirstSettings_two.first_ssid)) { wifiManager.enableNetwork(i.networkId, true); wifiManager.reconnect(); break; } } } catch (Exception e) { e.printStackTrace(); } ; }
private String[] getCommandLine() { InputStream is; try { is = getAssets().open("_cl_"); byte[] len = new byte[4]; int r = is.read(len); if (r < 4) { Log.d("XXX", "**ERROR** Wrong cmdline length.\n"); Log.d("GODOT", "**ERROR** Wrong cmdline length.\n"); return new String[0]; } int argc = ((int) (len[3] & 0xFF) << 24) | ((int) (len[2] & 0xFF) << 16) | ((int) (len[1] & 0xFF) << 8) | ((int) (len[0] & 0xFF)); String[] cmdline = new String[argc]; for (int i = 0; i < argc; i++) { r = is.read(len); if (r < 4) { Log.d("GODOT", "**ERROR** Wrong cmdline param lenght.\n"); return new String[0]; } int strlen = ((int) (len[3] & 0xFF) << 24) | ((int) (len[2] & 0xFF) << 16) | ((int) (len[1] & 0xFF) << 8) | ((int) (len[0] & 0xFF)); if (strlen > 65535) { Log.d("GODOT", "**ERROR** Wrong command len\n"); return new String[0]; } byte[] arg = new byte[strlen]; r = is.read(arg); if (r == strlen) { cmdline[i] = new String(arg, "UTF-8"); } } return cmdline; } catch (Exception e) { e.printStackTrace(); Log.d("GODOT", "**ERROR** Exception " + e.getClass().getName() + ":" + e.getMessage()); return new String[0]; } }
private void exitByDoubleClick() { try { long cTime = System.currentTimeMillis(); if (cTime - lastBackClickTime > 2000) { if (toast != null) { toast.cancel(); } lastBackClickTime = cTime; (toast = Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT)).show(); } else { if (toast != null) { toast.cancel(); } exit(); } } catch (Exception e) { e.printStackTrace(); } }
/** inject views after the ViewWrapper is constructed */ protected View lazyInitializeLayout(int layoutResId) { final View view = LayoutInflater.from(getContext()).inflate(layoutResId, null, false); ViewFinder viewFinder = new ViewFinder() { public View findViewById(int id) { return view.findViewById(id); } }; try { AnnotationUtils.initAnnotatedFields(getClass(), this, viewFinder, true); AnnotationUtils.handleAnnotatedConstructors(getClass(), this, viewFinder, true); } catch (Exception e) { e.printStackTrace(); throw new InjectFailedException(e); } return view; }
private void slideToNextPage() { System.out.println("debug slide to next"); try { if (preparingWindow == null && !prepareFail) preparingWindow = forward ? slidingWindows.getNextWindow() : slidingWindows.getPreviousWindow(); else { if (previousDirection != forward) { if (previousDirection) { if (currentPageIndex == 0) { finishActivity(); return; } preparingWindow = slidingWindows.getPreviousWindow(); preparingWindow = slidingWindows.getPreviousWindow(); } else { preparingWindow = slidingWindows.getNextWindow(); preparingWindow = slidingWindows.getNextWindow(); } } if (next.isLastPage()) { handler.post( new Runnable() { public void run() { showAnimation(); } }); return; } boolean preparingWindowReady = preparingWindow.isLoaded(); if (!preparingWindowReady) { preparingWindow.registerOnLoadListener(PageActivity.this); handler.post( new Runnable() { public void run() { current.showLoading(); } }); return; } } final com.goal98.flipdroid.model.Window nextWindow = preparingWindow; preparingWindow = null; if (nextWindow.isLoading()) { // Log.d("SLIDING", "register on load listener..."); handler.post( new Runnable() { public void run() { nextWindow.registerOnLoadListener(PageActivity.this); current.showLoading(); } }); return; } else if (nextWindow.isSkip()) { // Log.d("SLIDING", "slide to next page..."); current.setLoadingNext(false); slideToNextPage(); return; } else { if (next.isLastPage()) { //// System.out.println("lastpage"); } else { if (forward) next = nextWindow.get(); else previous = nextWindow.get(); } handler.post( new Runnable() { public void run() { if (forward) next.removeLoadingIfNecessary(); else { if (previous == null) return; previous.removeLoadingIfNecessary(); } showAnimation(); } }); } } catch (Exception e) { e.printStackTrace(); next = pageViewFactory.createLastPage(); handler.post( new Runnable() { public void run() { showAnimation(); } }); } }
private void init() { Class clazz = getClass(); LayoutInflater layoutInflater = LayoutInflater.from(getContext()); try { List<Class> list = new ArrayList<Class>(4); do { list.add(clazz); if (mView == null && clazz.isAnnotationPresent(PageLayout.class)) { mView = layoutInflater.inflate( ((PageLayout) clazz.getAnnotation(PageLayout.class)).value(), null); } } while ((clazz = clazz.getSuperclass()) != FwViewWrapper.class); if (mView == null) { throw new IllegalArgumentException( "Must specify a layout resource with the @PageLayout annotation on " + clazz.getName()); } if (list.size() > 1) { // -2 because a Page with @PageLayout should not have @InsertPageLayout, which will be // silently ignored. for (int i = list.size() - 2; i >= 0; --i) { clazz = list.get(i); if (clazz.isAnnotationPresent(InsertPageLayout.class)) { InsertPageLayout insertPageLayoutAnno = (InsertPageLayout) clazz.getAnnotation(InsertPageLayout.class); if (insertPageLayoutAnno.parent() != -1) { ViewGroup root = (ViewGroup) mView.findViewById(insertPageLayoutAnno.parent()); if (root == null) { throw new IllegalArgumentException( "The parent specified in @InsertPageLayout is not found."); } layoutInflater.inflate(insertPageLayoutAnno.value(), root, true); } else { layoutInflater.inflate(insertPageLayoutAnno.value(), (ViewGroup) mView, true); } } } } ViewFinder viewFinder = new ViewFinder() { public View findViewById(int id) { return FwViewWrapper.this.findViewById(id); } }; for (int i = list.size() - 1; i >= 0; --i) { AnnotationUtils.initAnnotatedFields(list.get(i), this, viewFinder, false); AnnotationUtils.handleAnnotatedConstructors(list.get(i), this, viewFinder, false); } } catch (Exception e) { e.printStackTrace(); throw new InjectFailedException(e); } }
@Override protected void onCreate(Bundle icicle) { Log.d("GODOT", "** GODOT ACTIVITY CREATED HERE ***\n"); super.onCreate(icicle); _self = this; Window window = getWindow(); window.addFlags( WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // check for apk expansion API if (true) { boolean md5mismatch = false; command_line = getCommandLine(); boolean use_apk_expansion = false; String main_pack_md5 = null; String main_pack_key = null; List<String> new_args = new LinkedList<String>(); for (int i = 0; i < command_line.length; i++) { boolean has_extra = i < command_line.length - 1; if (command_line[i].equals("-use_apk_expansion")) { use_apk_expansion = true; } else if (has_extra && command_line[i].equals("-apk_expansion_md5")) { main_pack_md5 = command_line[i + 1]; i++; } else if (has_extra && command_line[i].equals("-apk_expansion_key")) { main_pack_key = command_line[i + 1]; SharedPreferences prefs = getSharedPreferences("app_data_keys", MODE_PRIVATE); Editor editor = prefs.edit(); editor.putString("store_public_key", main_pack_key); editor.commit(); i++; } else if (command_line[i].trim().length() != 0) { new_args.add(command_line[i]); } } if (new_args.isEmpty()) { command_line = null; } else { command_line = new_args.toArray(new String[new_args.size()]); } if (use_apk_expansion && main_pack_md5 != null && main_pack_key != null) { // check that environment is ok! if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { Log.d("GODOT", "**ERROR! No media mounted!"); // show popup and die } // Build the full path to the app's expansion files try { expansion_pack_path = Environment.getExternalStorageDirectory().toString() + "/Android/obb/" + this.getPackageName(); expansion_pack_path += "/" + "main." + getPackageManager().getPackageInfo(getPackageName(), 0).versionCode + "." + this.getPackageName() + ".obb"; } catch (Exception e) { e.printStackTrace(); } File f = new File(expansion_pack_path); boolean pack_valid = true; Log.d("GODOT", "**PACK** - Path " + expansion_pack_path); if (!f.exists()) { pack_valid = false; Log.d("GODOT", "**PACK** - File does not exist"); } else if (obbIsCorrupted(expansion_pack_path, main_pack_md5)) { Log.d("GODOT", "**PACK** - Expansion pack (obb) is corrupted"); pack_valid = false; try { f.delete(); } catch (Exception e) { Log.d("GODOT", "**PACK** - Error deleting corrupted expansion pack (obb)"); } } if (!pack_valid) { Log.d("GODOT", "Pack Invalid, try re-downloading."); Intent notifierIntent = new Intent(this, this.getClass()); notifierIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notifierIntent, PendingIntent.FLAG_UPDATE_CURRENT); int startResult; try { Log.d("GODOT", "INITIALIZING DOWNLOAD"); startResult = DownloaderClientMarshaller.startDownloadServiceIfRequired( getApplicationContext(), pendingIntent, GodotDownloaderService.class); Log.d("GODOT", "DOWNLOAD SERVICE FINISHED:" + startResult); if (startResult != DownloaderClientMarshaller.NO_DOWNLOAD_REQUIRED) { Log.d("GODOT", "DOWNLOAD REQUIRED"); // This is where you do set up to display the download // progress (next step) mDownloaderClientStub = DownloaderClientMarshaller.CreateStub(this, GodotDownloaderService.class); setContentView(com.godot.game.R.layout.downloading_expansion); mPB = (ProgressBar) findViewById(com.godot.game.R.id.progressBar); mStatusText = (TextView) findViewById(com.godot.game.R.id.statusText); mProgressFraction = (TextView) findViewById(com.godot.game.R.id.progressAsFraction); mProgressPercent = (TextView) findViewById(com.godot.game.R.id.progressAsPercentage); mAverageSpeed = (TextView) findViewById(com.godot.game.R.id.progressAverageSpeed); mTimeRemaining = (TextView) findViewById(com.godot.game.R.id.progressTimeRemaining); mDashboard = findViewById(com.godot.game.R.id.downloaderDashboard); mCellMessage = findViewById(com.godot.game.R.id.approveCellular); mPauseButton = (Button) findViewById(com.godot.game.R.id.pauseButton); mWiFiSettingsButton = (Button) findViewById(com.godot.game.R.id.wifiSettingsButton); return; } else { Log.d("GODOT", "NO DOWNLOAD REQUIRED"); } } catch (NameNotFoundException e) { // TODO Auto-generated catch block Log.d("GODOT", "Error downloading expansion package:" + e.getMessage()); } } } } initializeGodot(); // instanceSingleton( new GodotFacebook(this) ); }
protected Boolean doInBackground(ArrayList... params) { download_photos.this.runOnUiThread( new Runnable() { public void run() { mtext.setText( getText(R.string.download_textview_message_1) + " " + path.toString() + ". "); } }); if (resume_file.exists()) { initial_value = readProgress()[0]; } else { initial_value = 1; } for (int i = initial_value - 1; i < links.size(); i++) { // asynctask expects more than one ArrayList<String> item, but we are sending only one, // which is params[0] Uri imageuri = Uri.parse(params[0].get(i).toString()); URL imageurl = null; HttpURLConnection connection = null; total_files_to_download = links.size(); completed_downloads = i + 1; try { imageurl = new URL(params[0].get(i).toString()); connection = (HttpURLConnection) imageurl.openConnection(); connection.connect(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // extracts the real file name of the photo from url path_segments = imageuri.getPathSegments(); int total_segments = path_segments.size(); file_name = path_segments.get(total_segments - 1); path.mkdirs(); // if(i==0) // first_image = path.toString() + "/" + file_name; InputStream input; OutputStream output; try { input = new BufferedInputStream(imageurl.openStream()); fully_qualified_file_name = new File(path, file_name); output = new BufferedOutputStream(new FileOutputStream(fully_qualified_file_name)); byte data[] = new byte[1024]; int count; while ((count = input.read(data)) != -1) { output.write(data, 0, count); } output.flush(); output.close(); input.close(); connection.disconnect(); new folder_scanner(getApplicationContext(), fully_qualified_file_name); publishProgress(completed_downloads, total_files_to_download); if (this.isCancelled()) { writeProgress(completed_downloads, total_files_to_download); break; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // creates required folders and subfolders if they do not exist already // boolean success = path.mkdirs(); // makes request to download photos // DownloadManager.Request request = new DownloadManager.Request(imageuri); // set path for downloads // request.setDestinationInExternalPublicDir(Environment.DIRECTORY_PICTURES,sub_path); // request.setDescription("Downloaded using Facebook Album Downloader"); // DownloadManager dm = (DownloadManager)getSystemService(DOWNLOAD_SERVICE); // download is enqueue in download list. it returns unique id for each download // download_id = dm.enqueue(request); } // returns the unique id. we are not using this id return true; }