編輯:關於Android編程
如果我們在文件浏覽器中點擊一個文件,然後點擊它,會彈出一個列表給你選擇
如果使自己的應用也出現在這個列表上,必須在menifest的這個activity下加入:
Intent intent = this.getIntent(); int flags = intent.getFlags(); if ((flags & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) == 0) { if (intent.getAction() != null && Intent.ACTION_VIEW.equals(intent.getAction())) { if (SCHEME_FILE.equals(intent.getScheme()) || SCHEME_CONTENT.equals(intent.getScheme())) { String i_type = getIntent().getType(); // mImportingUri=file:///storage/emulated/0/Vlog.xml intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); mImportingUri = intent.getData(); System.out.println(====mImportingUri= + mImportingUri); InputStream is = null; try { is = getContentResolver().openInputStream(mImportingUri); } catch (Exception e) { System.out.println(====e=+e); } if (mImportingUri != null && SCHEME_FILE.equalsIgnoreCase(mImportingUri.getScheme())) { //Is file startToCopyFile(is); }else if(mImportingUri != null && SCHEME_CONTENT.equalsIgnoreCase(mImportingUri.getScheme())){ startCopyMedia(is); } } } }
private boolean startCopyMedia(InputStream is) { Cursor c = null; try { c = getContentResolver().query(mImportingUri, new String[] {MediaStore.MediaColumns.DISPLAY_NAME, MediaStore.MediaColumns.SIZE}, null, null, null); if (c != null && c.moveToFirst()) { int dn_index = c.getColumnIndexOrThrow(MediaStore.MediaColumns.DISPLAY_NAME); fromFileName = c.getString(dn_index); int s_index = c.getColumnIndexOrThrow(MediaStore.MediaColumns.SIZE); fromFileSize = c.getLong(s_index); } } catch (Exception e) { System.out.println(===query e=+e); } return true; }
public static void makesureFileExist(String path) { String separator = File.separator; int index = path.lastIndexOf(separator); path = path.substring(0, index); File f = new File(path); f.mkdirs(); File f1 = new File(path); try { f1.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } public static String getSDPath(){ File sdDir = null; boolean sdCardExist = Environment.getExternalStorageState() .equals(android.os.Environment.MEDIA_MOUNTED); //判斷sd卡是否存在 if(sdCardExist) { sdDir = Environment.getExternalStorageDirectory();//獲取跟目錄 } if(sdDir!=null){ return sdDir.toString(); }else return null; } private String getName(Uri uri) { String str = uri.toString(); int index = str.lastIndexOf(File.separator); String name = str.substring(index,str.length()); return name; } private boolean startToCopyFile(InputStream is) { String fileName = getSDPath()+tmpPath+File.separator+getName(mImportingUri); makesureFileExist(fileName); File toFile = new File(fileName); CopyThread mCopyThread = new CopyThread(is, toFile); new Thread(mCopyThread).start(); return true; } private class CopyThread implements Runnable { private File toFile; private InputStream fosfrom = null; public CopyThread(InputStream fosfrom, File toFile) { this.fosfrom = fosfrom; this.toFile = toFile; } @Override public void run() { try { TimeUnit.MILLISECONDS.sleep(800); FileInputStream fosfrom = null; if (this.fosfrom != null) { fosfrom = (FileInputStream) this.fosfrom; } FileOutputStream fosto = new FileOutputStream(toFile); byte bt[] = new byte[1024]; int c; int time = 0; while ((c = fosfrom.read(bt)) > 0) { fosto.write(bt, 0, c); } if (fosfrom != null) { fosfrom.close(); } fosto.close(); } catch (Exception e) { return; } finally { try { if (this.fosfrom != null) { this.fosfrom.close(); } } catch (IOException e) { } } } }
有的時候用多了Android的一些開源框架用多了,就會把最基礎的一些東西給忘了,今天來重溫一下Android的網絡基礎。包括這個Http協議的網絡請求,JSON解析。使用
Android 應用坐標系詳解: &nb
1、 概述DialogFragment在android 3.0時被引入。是一種特殊的Fragment,用於在Activity的內容之上展示一個模態的對話框。典型的用於:
一、電腦上的設置首先,想要在手機上創建你的郵箱賬戶,就得先將此賬戶在電腦上進行一定的設置,就拿QQ郵箱來說(其他郵箱同例):第一步,在電腦上登陸你的QQ郵箱