標籤:
Splash介面的作用
開啟應用Splash介面串連網路檢查版本.
獲得包管理器,通過包管理器獲得版本資訊
1 // 擷取自己的版本資訊 2 PackageManager pm = getPackageManager(); 3 try { 4 PackageInfo packageInfo = pm.getPackageInfo(getPackageName(), 0);//獲得本應用資訊 5 // 版本號碼 6 versionCode = packageInfo.versionCode; 7 // 版本名 8 versionName = packageInfo.versionName; 9 10 // 設定textview11 tv_versionName.setText(versionName);12 } catch (NameNotFoundException e) {13 // can not reach 使用Api獲得應用這個異常不會發生14 }
安裝應用
1 protected void installApk() { 2 /* 3 * <intent-filter> <action android:name="android.intent.action.VIEW" /> 4 * <category android:name="android.intent.category.DEFAULT" /> <data 5 * android:scheme="content" /> <data android:scheme="file" /> <data 6 * android:mimeType="application/vnd.android.package-archive" /> 7 * </intent-filter> 8 */ 9 Intent intent = new Intent("android.intent.action.VIEW");10 intent.addCategory("android.intent.category.DEFAULT");11 String type = "application/vnd.android.package-archive";12 Uri data = Uri.fromFile(new File("/mnt/sdcard/xx.apk"));13 intent.setDataAndType(data, type);14 startActivityForResult(intent, 0);15 16 }
手勢辨識器
1 private void initGesture() { 2 //初始化手勢辨識器,要想手勢辨識器生效,綁定onTouch事件 3 gd = new GestureDetector(new OnGestureListener() { 4 5 //覆蓋此方法完成手勢的轉場效果 6 /** 7 * e1,按下的點 8 * e2 鬆開螢幕的點 9 * velocityX x軸方向的速度10 * velocityY y軸方向的速度11 */12 @Override13 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,14 float velocityY) {15 // TODO Auto-generated method stub16 //x軸方向的速度是否滿足橫向滑動的條件 pix/s17 if (velocityX > 200) { //速度大於400像素每秒18 //可以完成滑動19 float dx = e2.getX() - e1.getX();//x軸方向滑動的間距20 if (Math.abs(dx) < 100) {21 return true;//如果間距不符合直接無效22 }23 if (dx < 0 ){//從右往左滑動24 next(null);//不是組件的事件調用25 } else {//從左往右滑動26 prev(null);27 }28 }29 return true;30 }31 ......還有很多個方法
SIM卡綁定
1 TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);2 //sim卡資訊3 String simSerialNumber = tm.getSimSerialNumber();
assets資產目錄資料庫拷貝
private void copyDB(final String dbName) { new Thread() { public void run() { // 判斷檔案是否存在,如果存在不需要拷貝 File file = new File("/data/data/" + getPackageName() + "/files/" + dbName); if (file.exists()) {// 檔案存在 return; } // 檔案的拷貝 try { filecopy(dbName); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }; }.start(); }
判斷服務是否在運行
public static boolean isServiceRunning(Context context,String serviceName){ boolean isRunning = false; //判斷運行中的服務狀態,ActivityManager ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); //擷取android手機中啟動並執行所有服務 List<RunningServiceInfo> runningServices = am.getRunningServices(50); for (RunningServiceInfo runningServiceInfo : runningServices) { //System.out.println(runningServiceInfo.service.getClassName()); //判斷服務的名字是否包含我們指定的服務名 if (runningServiceInfo.service.getClassName().equals(serviceName)){ //名字一直,該服務在運行中 isRunning = true; //已經找到 退出迴圈 break; } } return isRunning; }
開機接收廣播
廣播註冊
<receiver android:name="com.itheima62.mobileguard.receiver.BootReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" > </action> </intent-filter> </receiver>
安卓基礎應用項目開發Api總結1