{"id":916,"date":"2016-08-30T10:33:32","date_gmt":"2016-08-30T02:33:32","guid":{"rendered":"http:\/\/www.zyuns.com\/?p=916"},"modified":"2016-08-30T10:33:32","modified_gmt":"2016-08-30T02:33:32","slug":"android%e5%bc%80%e5%8f%91%e5%b8%b8%e7%94%a8%e4%bb%a3%e7%a0%81%e7%89%87%e6%ae%b5%ef%bc%8c%e5%80%bc%e5%be%97%e6%94%b6%e8%97%8f","status":"publish","type":"post","link":"https:\/\/www.siediyer.cn\/?p=916","title":{"rendered":"Android\u5f00\u53d1\u5e38\u7528\u4ee3\u7801\u7247\u6bb5\uff0c\u503c\u5f97\u6536\u85cf"},"content":{"rendered":"<p><strong><span style=\"font-size: x-large;\">\u62e8\u6253\u7535\u8bdd<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static void call(Context context, String phoneNumber) {\r\n \r\n     context.startActivity( new Intent(Intent.ACTION_CALL, Uri.parse( \"tel:\" + phoneNumber)));\r\n \r\n   }<\/pre>\n<p><strong>\u8df3\u8f6c\u81f3\u62e8\u53f7\u754c\u9762<\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static void callDial(Context context, String phoneNumber) {\r\n \r\n     context.startActivity( new Intent(Intent.ACTION_DIAL, Uri.parse( \"tel:\" + phoneNumber)));\r\n \r\n   }<\/pre>\n<p><strong>\u53d1\u9001\u77ed\u4fe1<\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static void sendSms(Context context, String phoneNumber,\r\n \r\n       String content) {\r\n \r\n     Uri uri = Uri.parse( \"smsto:\"\r\n \r\n         + (TextUtils.isEmpty(phoneNumber) ? \"\" : phoneNumber));\r\n \r\n     Intent intent = new Intent(Intent.ACTION_SENDTO, uri);\r\n \r\n     intent.putExtra( \"sms_body\" , TextUtils.isEmpty(content) ? \"\" : content);\r\n \r\n     context.startActivity(intent);\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u5524\u9192\u5c4f\u5e55\u5e76\u89e3\u9501<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static void wakeUpAndUnlock(Context context){ \r\n \r\n     KeyguardManager km= (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); \r\n \r\n     KeyguardManager.KeyguardLock kl = km.newKeyguardLock( \"unLock\" ); \r\n \r\n     \/\/\u89e3\u9501 \r\n \r\n     kl.disableKeyguard(); \r\n \r\n     \/\/\u83b7\u53d6\u7535\u6e90\u7ba1\u7406\u5668\u5bf9\u8c61 \r\n \r\n     PowerManager pm=(PowerManager) context.getSystemService(Context.POWER_SERVICE); \r\n \r\n     \/\/\u83b7\u53d6PowerManager.WakeLock\u5bf9\u8c61,\u540e\u9762\u7684\u53c2\u6570|\u8868\u793a\u540c\u65f6\u4f20\u5165\u4e24\u4e2a\u503c,\u6700\u540e\u7684\u662fLogCat\u91cc\u7528\u7684Tag \r\n \r\n     PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, \"bright\" ); \r\n \r\n     \/\/\u70b9\u4eae\u5c4f\u5e55 \r\n \r\n     wl.acquire(); \r\n \r\n     \/\/\u91ca\u653e \r\n \r\n     wl.release(); \r\n \r\n   }<\/pre>\n<p>\u9700\u8981\u6dfb\u52a0\u6743\u9650<\/p>\n<pre class=\"lang:default decode:true \">&lt;uses-permission android:name= \"android.permission.WAKE_LOCK\" \/&gt;\r\n \r\n&lt;uses-permission android:name= \"android.permission.DISABLE_KEYGUARD\" \/&gt;<\/pre>\n<p><strong>\u5224\u65ad\u5f53\u524dApp\u5904\u4e8e\u524d\u53f0\u8fd8\u662f\u540e\u53f0\u72b6\u6001<\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static boolean isApplicationBackground( final Context context) {\r\n \r\n     ActivityManager am = (ActivityManager) context\r\n \r\n         .getSystemService(Context.ACTIVITY_SERVICE);\r\n \r\n     @SuppressWarnings ( \"deprecation\" )\r\n \r\n     List&lt;ActivityManager.RunningTaskInfo&gt; tasks = am.getRunningTasks( 1 );\r\n \r\n     if (!tasks.isEmpty()) {\r\n \r\n       ComponentName topActivity = tasks.get( 0 ).topActivity;\r\n \r\n       if (!topActivity.getPackageName().equals(context.getPackageName())) {\r\n \r\n         return true ;\r\n \r\n       }\r\n \r\n     }\r\n \r\n     return false ;\r\n \r\n   }<\/pre>\n<p>\u9700\u8981\u6dfb\u52a0\u6743\u9650<\/p>\n<pre class=\"lang:default decode:true \">&lt;uses-permission\r\n \r\n    android:name= \"android.permission.GET_TASKS\" \/<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u5224\u65ad\u5f53\u524d\u624b\u673a\u662f\u5426\u5904\u4e8e\u9501\u5c4f(\u7761\u7720)\u72b6\u6001<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static boolean isSleeping(Context context) {\r\n \r\n     KeyguardManager kgMgr = (KeyguardManager) context\r\n \r\n         .getSystemService(Context.KEYGUARD_SERVICE);\r\n \r\n     boolean isSleeping = kgMgr.inKeyguardRestrictedInputMode();\r\n \r\n     return isSleeping;\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u5224\u65ad\u5f53\u524d\u662f\u5426\u6709\u7f51\u7edc\u8fde\u63a5<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static boolean isOnline(Context context) {\r\n \r\n     ConnectivityManager manager = (ConnectivityManager) context\r\n \r\n         .getSystemService(Activity.CONNECTIVITY_SERVICE);\r\n \r\n     NetworkInfo info = manager.getActiveNetworkInfo();\r\n \r\n     if (info != null &amp;&amp; info.isConnected()) {\r\n \r\n       return true ;\r\n \r\n     }\r\n \r\n     return false ;\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u5224\u65ad\u5f53\u524d\u662f\u5426\u662fWIFI\u8fde\u63a5\u72b6\u6001<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static boolean isWifiConnected(Context context) {\r\n \r\n   ConnectivityManager connectivityManager = (ConnectivityManager) context\r\n \r\n       .getSystemService(Context.CONNECTIVITY_SERVICE);\r\n \r\n   NetworkInfo wifiNetworkInfo = connectivityManager\r\n \r\n       .getNetworkInfo(ConnectivityManager.TYPE_WIFI);\r\n \r\n   if (wifiNetworkInfo.isConnected()) {\r\n \r\n     return true ;\r\n \r\n   }\r\n \r\n   return false ;\r\n \r\n}<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u5b89\u88c5APK<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static void installApk(Context context, File file) {\r\n \r\n   Intent intent = new Intent();\r\n \r\n   intent.setAction( \"android.intent.action.VIEW\" );\r\n \r\n   intent.addCategory( \"android.intent.category.DEFAULT\" );\r\n \r\n   intent.setType( \"application\/vnd.android.package-archive\" );\r\n \r\n   intent.setDataAndType(Uri.fromFile(file),\r\n \r\n       \"application\/vnd.android.package-archive\" );\r\n \r\n   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\r\n \r\n   context.startActivity(intent);\r\n \r\n}<\/pre>\n<p><strong>\u5224\u65ad\u5f53\u524d\u8bbe\u5907\u662f\u5426\u4e3a\u624b\u673a<\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static boolean isPhone(Context context) {\r\n \r\n   TelephonyManager telephony = (TelephonyManager) context\r\n \r\n       .getSystemService(Context.TELEPHONY_SERVICE);\r\n \r\n   if (telephony.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) {\r\n \r\n     return false ;\r\n \r\n   } else {\r\n \r\n     return true ;\r\n \r\n   }\r\n \r\n}<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u83b7\u53d6\u5f53\u524d\u8bbe\u5907\u5bbd\u9ad8\uff0c\u5355\u4f4dpx<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">@SuppressWarnings ( \"deprecation\" )\r\n \r\npublic static int getDeviceWidth(Context context) {\r\n \r\n   WindowManager manager = (WindowManager) context\r\n \r\n       .getSystemService(Context.WINDOW_SERVICE);\r\n \r\n   return manager.getDefaultDisplay().getWidth();\r\n \r\n}\r\n \r\n@SuppressWarnings ( \"deprecation\" )\r\n \r\npublic static int getDeviceHeight(Context context) {\r\n \r\n   WindowManager manager = (WindowManager) context\r\n \r\n       .getSystemService(Context.WINDOW_SERVICE);\r\n \r\n   return manager.getDefaultDisplay().getHeight();\r\n \r\n}<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u83b7\u53d6\u5f53\u524d\u8bbe\u5907\u7684IMEI\uff0c\u9700\u8981\u4e0e\u4e0a\u9762\u7684isPhone()\u4e00\u8d77\u4f7f\u7528<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">@TargetApi (Build.VERSION_CODES.CUPCAKE)\r\n \r\npublic static String getDeviceIMEI(Context context) {\r\n \r\n   String deviceId;\r\n \r\n   if (isPhone(context)) {\r\n \r\n     TelephonyManager telephony = (TelephonyManager) context\r\n \r\n         .getSystemService(Context.TELEPHONY_SERVICE);\r\n \r\n     deviceId = telephony.getDeviceId();\r\n \r\n   } else {\r\n \r\n     deviceId = Settings.Secure.getString(context.getContentResolver(),\r\n \r\n         Settings.Secure.ANDROID_ID);\r\n \r\n   }\r\n \r\n   return deviceId;\r\n \r\n}<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u83b7\u53d6\u5f53\u524d\u8bbe\u5907\u7684MAC\u5730\u5740<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static String getMacAddress(Context context) {\r\n \r\n   String macAddress;\r\n \r\n   WifiManager wifi = (WifiManager) context\r\n \r\n       .getSystemService(Context.WIFI_SERVICE);\r\n \r\n   WifiInfo info = wifi.getConnectionInfo();\r\n \r\n   macAddress = info.getMacAddress();\r\n \r\n   if ( null == macAddress) {\r\n \r\n     return \"\" ;\r\n \r\n   }\r\n \r\n   macAddress = macAddress.replace( \":\" , \"\" );\r\n \r\n   return macAddress;\r\n \r\n}<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u83b7\u53d6\u5f53\u524d\u7a0b\u5e8f\u7684\u7248\u672c\u53f7<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static String getAppVersion(Context context) {\r\n \r\n   String version = \"0\" ;\r\n \r\n   try {\r\n \r\n     version = context.getPackageManager().getPackageInfo(\r\n \r\n         context.getPackageName(), 0 ).versionName;\r\n \r\n   } catch (PackageManager.NameNotFoundException e) {\r\n \r\n     e.printStackTrace();\r\n \r\n   }\r\n \r\n   return version;\r\n \r\n}<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u6536\u96c6\u8bbe\u5907\u4fe1\u606f\uff0c\u7528\u4e8e\u4fe1\u606f\u7edf\u8ba1\u5206\u6790<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static Properties collectDeviceInfo(Context context) {\r\n \r\n     Properties mDeviceCrashInfo = new Properties();\r\n \r\n     try {\r\n \r\n       PackageManager pm = context.getPackageManager();\r\n \r\n       PackageInfo pi = pm.getPackageInfo(context.getPackageName(),\r\n \r\n           PackageManager.GET_ACTIVITIES);\r\n \r\n       if (pi != null ) {\r\n \r\n         mDeviceCrashInfo.put(VERSION_NAME,\r\n \r\n             pi.versionName == null ? \"not set\" : pi.versionName);\r\n \r\n         mDeviceCrashInfo.put(VERSION_CODE, pi.versionCode);\r\n \r\n       }\r\n \r\n     } catch (PackageManager.NameNotFoundException e) {\r\n \r\n       Log.e(TAG, \"Error while collect package info\" , e);\r\n \r\n     }\r\n \r\n     Field[] fields = Build. class .getDeclaredFields();\r\n \r\n     for (Field field : fields) {\r\n \r\n       try {\r\n \r\n         field.setAccessible( true );\r\n \r\n         mDeviceCrashInfo.put(field.getName(), field.get( null ));\r\n \r\n       } catch (Exception e) {\r\n \r\n         Log.e(TAG, \"Error while collect crash info\" , e);\r\n \r\n       }\r\n \r\n     }\r\n \r\n     return mDeviceCrashInfo;\r\n \r\n   }\r\n \r\npublic static String collectDeviceInfoStr(Context context) {\r\n \r\n     Properties prop = collectDeviceInfo(context);\r\n \r\n     Set deviceInfos = prop.keySet();\r\n \r\n     StringBuilder deviceInfoStr = new StringBuilder( \"{\\n\" );\r\n \r\n     for (Iterator iter = deviceInfos.iterator(); iter.hasNext();) {\r\n \r\n       Object item = iter.next();\r\n \r\n       deviceInfoStr.append( \"\\t\\t\\t\" + item + \":\" + prop.get(item)\r\n \r\n           + \", \\n\" );\r\n \r\n     }\r\n \r\n     deviceInfoStr.append( \"}\" );\r\n \r\n     return deviceInfoStr.toString();\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u662f\u5426\u6709SD\u5361<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static boolean haveSDCard() {\r\n \r\n     return android.os.Environment.getExternalStorageState().equals(\r\n \r\n         android.os.Environment.MEDIA_MOUNTED);\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u52a8\u6001\u9690\u85cf\u8f6f\u952e\u76d8<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">@TargetApi (Build.VERSION_CODES.CUPCAKE)\r\n \r\n   public static void hideSoftInput(Activity activity) {\r\n \r\n     View view = activity.getWindow().peekDecorView();\r\n \r\n     if (view != null ) {\r\n \r\n       InputMethodManager inputmanger = (InputMethodManager) activity\r\n \r\n           .getSystemService(Context.INPUT_METHOD_SERVICE);\r\n \r\n       inputmanger.hideSoftInputFromWindow(view.getWindowToken(), 0 );\r\n \r\n     }\r\n \r\n   }\r\n \r\n   @TargetApi (Build.VERSION_CODES.CUPCAKE)\r\n \r\npublic static void hideSoftInput(Context context, EditText edit) {\r\n \r\n     edit.clearFocus();\r\n \r\n     InputMethodManager inputmanger = (InputMethodManager) context\r\n \r\n         .getSystemService(Context.INPUT_METHOD_SERVICE);\r\n \r\n     inputmanger.hideSoftInputFromWindow(edit.getWindowToken(), 0 );\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u52a8\u6001\u663e\u793a\u8f6f\u952e\u76d8<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">@TargetApi (Build.VERSION_CODES.CUPCAKE)\r\n \r\npublic static void showSoftInput(Context context, EditText edit) {\r\n \r\n     edit.setFocusable( true );\r\n \r\n     edit.setFocusableInTouchMode( true );\r\n \r\n     edit.requestFocus();\r\n \r\n     InputMethodManager inputManager = (InputMethodManager) context\r\n \r\n         .getSystemService(Context.INPUT_METHOD_SERVICE);\r\n \r\n     inputManager.showSoftInput(edit, 0 );\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u52a8\u6001\u663e\u793a\u6216\u8005\u662f\u9690\u85cf\u8f6f\u952e\u76d8<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">@TargetApi (Build.VERSION_CODES.CUPCAKE)\r\n \r\npublic static void toggleSoftInput(Context context, EditText edit) {\r\n \r\n     edit.setFocusable( true );\r\n \r\n     edit.setFocusableInTouchMode( true );\r\n \r\n     edit.requestFocus();\r\n \r\n     InputMethodManager inputManager = (InputMethodManager) context\r\n \r\n         .getSystemService(Context.INPUT_METHOD_SERVICE);\r\n \r\n     inputManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0 );\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u4e3b\u52a8\u56de\u5230Home\uff0c\u540e\u53f0\u8fd0\u884c<\/span><\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static void goHome(Context context) {\r\n \r\n     Intent mHomeIntent = new Intent(Intent.ACTION_MAIN);\r\n \r\n     mHomeIntent.addCategory(Intent.CATEGORY_HOME);\r\n \r\n     mHomeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK\r\n \r\n         | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);\r\n \r\n     context.startActivity(mHomeIntent);\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u83b7\u53d6\u72b6\u6001\u680f\u9ad8\u5ea6<\/span><\/strong><\/p>\n<p>\u6ce8\u610f\uff0c\u8981\u5728onWindowFocusChanged\u4e2d\u8c03\u7528\uff0c\u5728onCreate\u4e2d\u83b7\u53d6\u9ad8\u5ea6\u4e3a0<\/p>\n<pre class=\"lang:default decode:true \">@TargetApi (Build.VERSION_CODES.CUPCAKE)\r\n \r\npublic static int getStatusBarHeight(Activity activity) {\r\n \r\n   Rect frame = new Rect();\r\n \r\n   activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);\r\n \r\n     return frame.top;\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u83b7\u53d6\u72b6\u6001\u680f\u9ad8\u5ea6\uff0b\u6807\u9898\u680f(ActionBar)\u9ad8\u5ea6<\/span><\/strong><\/p>\n<p>(\u6ce8\u610f\uff0c\u5982\u679c\u6ca1\u6709ActionBar\uff0c\u90a3\u4e48\u83b7\u53d6\u7684\u9ad8\u5ea6\u5c06\u548c\u4e0a\u9762\u7684\u662f\u4e00\u6837\u7684\uff0c\u53ea\u6709\u72b6\u6001\u680f\u7684\u9ad8\u5ea6)<\/p>\n<pre class=\"lang:default decode:true \">public static int getTopBarHeight(Activity activity) {\r\n \r\n     return activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT)\r\n \r\n         .getTop();\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u83b7\u53d6MCC+MNC\u4ee3\u7801 (SIM\u5361\u8fd0\u8425\u5546\u56fd\u5bb6\u4ee3\u7801\u548c\u8fd0\u8425\u5546\u7f51\u7edc\u4ee3\u7801)<\/span><\/strong><\/p>\n<p>\u4ec5\u5f53\u7528\u6237\u5df2\u5728\u7f51\u7edc\u6ce8\u518c\u65f6\u6709\u6548, CDMA \u53ef\u80fd\u4f1a\u65e0\u6548\uff08\u4e2d\u56fd\u79fb\u52a8\uff1a46000 46002, \u4e2d\u56fd\u8054\u901a\uff1a46001,\u4e2d\u56fd\u7535\u4fe1\uff1a46003\uff09<\/p>\n<pre class=\"lang:default decode:true \">public static String getNetworkOperator(Context context) {\r\n \r\n     TelephonyManager telephonyManager = (TelephonyManager) context\r\n \r\n         .getSystemService(Context.TELEPHONY_SERVICE);\r\n \r\n     return telephonyManager.getNetworkOperator();\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u8fd4\u56de\u79fb\u52a8\u7f51\u7edc\u8fd0\u8425\u5546\u7684\u540d\u5b57<\/span><\/strong><\/p>\n<p>(\u4f8b\uff1a\u4e2d\u56fd\u8054\u901a\u3001\u4e2d\u56fd\u79fb\u52a8\u3001\u4e2d\u56fd\u7535\u4fe1) \u4ec5\u5f53\u7528\u6237\u5df2\u5728\u7f51\u7edc\u6ce8\u518c\u65f6\u6709\u6548, CDMA \u53ef\u80fd\u4f1a\u65e0\u6548)<\/p>\n<pre class=\"lang:default decode:true \">public static String getNetworkOperatorName(Context context) {\r\n \r\n     TelephonyManager telephonyManager = (TelephonyManager) context\r\n \r\n         .getSystemService(Context.TELEPHONY_SERVICE);\r\n \r\n     return telephonyManager.getNetworkOperatorName();\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u8fd4\u56de\u79fb\u52a8\u7ec8\u7aef\u7c7b\u578b<\/span><\/strong><\/p>\n<ul class=\"litype_1\" type=\"1\">\n<li>PHONE_TYPE_NONE :0 \u624b\u673a\u5236\u5f0f\u672a\u77e5<\/li>\n<li>PHONE_TYPE_GSM :1 \u624b\u673a\u5236\u5f0f\u4e3aGSM\uff0c\u79fb\u52a8\u548c\u8054\u901a<\/li>\n<li>PHONE_TYPE_CDMA :2 \u624b\u673a\u5236\u5f0f\u4e3aCDMA\uff0c\u7535\u4fe1<\/li>\n<li>PHONE_TYPE_SIP:3<\/li>\n<\/ul>\n<pre class=\"lang:default decode:true\">public static int getPhoneType(Context context) {\r\n \r\n     TelephonyManager telephonyManager = (TelephonyManager) context\r\n \r\n         .getSystemService(Context.TELEPHONY_SERVICE);\r\n \r\n     return telephonyManager.getPhoneType();\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u5224\u65ad\u624b\u673a\u8fde\u63a5\u7684\u7f51\u7edc\u7c7b\u578b(2G,3G,4G)<\/span><\/strong><\/p>\n<p>\u8054\u901a\u76843G\u4e3aUMTS\u6216HSDPA\uff0c\u79fb\u52a8\u548c\u8054\u901a\u76842G\u4e3aGPRS\u6216EGDE\uff0c\u7535\u4fe1\u76842G\u4e3aCDMA\uff0c\u7535\u4fe1\u76843G\u4e3aEVDO<\/p>\n<pre class=\"lang:default decode:true \">public class Constants {\r\n \r\n   \/**\r\n \r\n    * Unknown network class\r\n \r\n    *\/\r\n \r\n   public static final int NETWORK_CLASS_UNKNOWN = 0 ;\r\n \r\n   \/**\r\n \r\n    * wifi net work\r\n \r\n    *\/\r\n \r\n   public static final int NETWORK_WIFI = 1 ;\r\n \r\n   \/**\r\n \r\n    * \"2G\" networks\r\n \r\n    *\/\r\n \r\n   public static final int NETWORK_CLASS_2_G = 2 ;\r\n \r\n   \/**\r\n \r\n    * \"3G\" networks\r\n \r\n    *\/\r\n \r\n   public static final int NETWORK_CLASS_3_G = 3 ;\r\n \r\n   \/**\r\n \r\n    * \"4G\" networks\r\n \r\n    *\/\r\n \r\n   public static final int NETWORK_CLASS_4_G = 4 ;\r\n \r\n}\r\n \r\npublic static int getNetWorkClass(Context context) {\r\n \r\n     TelephonyManager telephonyManager = (TelephonyManager) context\r\n \r\n         .getSystemService(Context.TELEPHONY_SERVICE);\r\n \r\n     switch (telephonyManager.getNetworkType()) {\r\n \r\n     case TelephonyManager.NETWORK_TYPE_GPRS:\r\n \r\n     case TelephonyManager.NETWORK_TYPE_EDGE:\r\n \r\n     case TelephonyManager.NETWORK_TYPE_CDMA:\r\n \r\n     case TelephonyManager.NETWORK_TYPE_1xRTT:\r\n \r\n     case TelephonyManager.NETWORK_TYPE_IDEN:\r\n \r\n       return Constants.NETWORK_CLASS_2_G;\r\n \r\n     case TelephonyManager.NETWORK_TYPE_UMTS:\r\n \r\n     case TelephonyManager.NETWORK_TYPE_EVDO_0:\r\n \r\n     case TelephonyManager.NETWORK_TYPE_EVDO_A:\r\n \r\n     case TelephonyManager.NETWORK_TYPE_HSDPA:\r\n \r\n     case TelephonyManager.NETWORK_TYPE_HSUPA:\r\n \r\n     case TelephonyManager.NETWORK_TYPE_HSPA:\r\n \r\n     case TelephonyManager.NETWORK_TYPE_EVDO_B:\r\n \r\n     case TelephonyManager.NETWORK_TYPE_EHRPD:\r\n \r\n     case TelephonyManager.NETWORK_TYPE_HSPAP:\r\n \r\n       return Constants.NETWORK_CLASS_3_G;\r\n \r\n     case TelephonyManager.NETWORK_TYPE_LTE:\r\n \r\n       return Constants.NETWORK_CLASS_4_G;\r\n \r\n     default :\r\n \r\n       return Constants.NETWORK_CLASS_UNKNOWN;\r\n \r\n     }\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u5224\u65ad\u5f53\u524d\u624b\u673a\u7684\u7f51\u7edc\u7c7b\u578b(WIFI\u8fd8\u662f2,3,4G)<\/span><\/strong><\/p>\n<p>\u9700\u8981\u7528\u5230\u4e0a\u9762\u7684\u65b9\u6cd5<\/p>\n<pre class=\"lang:default decode:true \">public static int getNetWorkStatus(Context context) {\r\n \r\n     int netWorkType = Constants.NETWORK_CLASS_UNKNOWN;\r\n \r\n     ConnectivityManager connectivityManager = (ConnectivityManager) context\r\n \r\n         .getSystemService(Context.CONNECTIVITY_SERVICE);\r\n \r\n     NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();\r\n \r\n     if (networkInfo != null &amp;&amp; networkInfo.isConnected()) {\r\n \r\n       int type = networkInfo.getType();\r\n \r\n       if (type == ConnectivityManager.TYPE_WIFI) {\r\n \r\n         netWorkType = Constants.NETWORK_WIFI;\r\n \r\n       } else if (type == ConnectivityManager.TYPE_MOBILE) {\r\n \r\n         netWorkType = getNetWorkClass(context);\r\n \r\n       }\r\n \r\n     }\r\n \r\n     return netWorkType;\r\n \r\n   }<\/pre>\n<p><strong>px-dp\u8f6c\u6362<\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static int dip2px(Context context, float dpValue) {\r\n \r\n   final float scale = context.getResources().getDisplayMetrics().density;\r\n \r\n   return ( int ) (dpValue * scale + 0 .5f);\r\n \r\n}\r\n \r\npublic static int px2dip(Context context, float pxValue) {\r\n \r\n   final float scale = context.getResources().getDisplayMetrics().density;\r\n \r\n   return ( int ) (pxValue \/ scale + 0 .5f);\r\n \r\n}<\/pre>\n<p><strong>px-sp\u8f6c\u6362<\/strong><\/p>\n<pre class=\"lang:default decode:true \">public static int px2sp(Context context, float pxValue) {\r\n \r\n     final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;\r\n \r\n     return ( int ) (pxValue \/ fontScale + 0 .5f);\r\n \r\n   }\r\n \r\npublic static int sp2px(Context context, float spValue) {\r\n \r\n     final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;\r\n \r\n     return ( int ) (spValue * fontScale + 0 .5f);\r\n \r\n   }<\/pre>\n<p><strong><span style=\"font-size: x-large;\">\u628a\u4e00\u4e2a\u6beb\u79d2\u6570\u8f6c\u5316\u6210\u65f6\u95f4\u5b57\u7b26\u4e32<\/span><\/strong><\/p>\n<p>\u683c\u5f0f\u4e3a\u5c0f\u65f6\/\u5206\/\u79d2\/\u6beb\u79d2\uff08\u5982\uff1a24903600 \u2013&gt; 06\u5c0f\u65f655\u520603\u79d2600\u6beb\u79d2\uff09<\/p>\n<pre class=\"lang:default decode:true \">\/**\r\n \r\n    * @param millis\r\n \r\n    *            \u8981\u8f6c\u5316\u7684\u6beb\u79d2\u6570\u3002\r\n \r\n    * @param isWhole\r\n \r\n    *            \u662f\u5426\u5f3a\u5236\u5168\u90e8\u663e\u793a\u5c0f\u65f6\/\u5206\/\u79d2\/\u6beb\u79d2\u3002\r\n \r\n    * @param isFormat\r\n \r\n    *            \u65f6\u95f4\u6570\u5b57\u662f\u5426\u8981\u683c\u5f0f\u5316\uff0c\u5982\u679ctrue\uff1a\u5c11\u4f4d\u6570\u524d\u9762\u8865\u5168\uff1b\u5982\u679cfalse\uff1a\u5c11\u4f4d\u6570\u524d\u9762\u4e0d\u8865\u5168\u3002\r\n \r\n    * @return \u8fd4\u56de\u65f6\u95f4\u5b57\u7b26\u4e32\uff1a\u5c0f\u65f6\/\u5206\/\u79d2\/\u6beb\u79d2\u7684\u683c\u5f0f\uff08\u5982\uff1a24903600 --&gt; 06\u5c0f\u65f655\u520603\u79d2600\u6beb\u79d2\uff09\u3002\r\n \r\n    *\/\r\n \r\n   public static String millisToString( long millis, boolean isWhole,\r\n \r\n       boolean isFormat) {\r\n \r\n     String h = \"\" ;\r\n \r\n     String m = \"\" ;\r\n \r\n     String s = \"\" ;\r\n \r\n     String mi = \"\" ;\r\n \r\n     if (isWhole) {\r\n \r\n       h = isFormat ? \"00\u5c0f\u65f6\" : \"0\u5c0f\u65f6\" ;\r\n \r\n       m = isFormat ? \"00\u5206\" : \"0\u5206\" ;\r\n \r\n       s = isFormat ? \"00\u79d2\" : \"0\u79d2\" ;\r\n \r\n       mi = isFormat ? \"00\u6beb\u79d2\" : \"0\u6beb\u79d2\" ;\r\n \r\n     }\r\n \r\n     long temp = millis;\r\n \r\n     long hper = 60 * 60 * 1000 ;\r\n \r\n     long mper = 60 * 1000 ;\r\n \r\n     long sper = 1000 ;\r\n \r\n     if (temp \/ hper &gt; 0 ) {\r\n \r\n       if (isFormat) {\r\n \r\n         h = temp \/ hper &lt; 10 ? \"0\" + temp \/ hper : temp \/ hper + \"\" ;\r\n \r\n       } else {\r\n \r\n         h = temp \/ hper + \"\" ;\r\n \r\n       }\r\n \r\n       h += \"\u5c0f\u65f6\" ;\r\n \r\n     }\r\n \r\n     temp = temp % hper;\r\n \r\n     if (temp \/ mper &gt; 0 ) {\r\n \r\n       if (isFormat) {\r\n \r\n         m = temp \/ mper &lt; 10 ? \"0\" + temp \/ mper : temp \/ mper + \"\" ;\r\n \r\n       } else {\r\n \r\n         m = temp \/ mper + \"\" ;\r\n \r\n       }\r\n \r\n       m += \"\u5206\" ;\r\n \r\n     }\r\n \r\n     temp = temp % mper;\r\n \r\n     if (temp \/ sper &gt; 0 ) {\r\n \r\n       if (isFormat) {\r\n \r\n         s = temp \/ sper &lt; 10 ? \"0\" + temp \/ sper : temp \/ sper + \"\" ;\r\n \r\n       } else {\r\n \r\n         s = temp \/ sper + \"\" ;\r\n \r\n       }\r\n \r\n       s += \"\u79d2\" ;\r\n \r\n     }\r\n \r\n     temp = temp % sper;\r\n \r\n     mi = temp + \"\" ;\r\n \r\n     if (isFormat) {\r\n \r\n       if (temp &lt; 100 &amp;&amp; temp &gt;= 10 ) {\r\n \r\n         mi = \"0\" + temp;\r\n \r\n       }\r\n \r\n       if (temp &lt; 10 ) {\r\n \r\n         mi = \"00\" + temp;\r\n \r\n       }\r\n \r\n     }\r\n \r\n     mi += \"\u6beb\u79d2\" ;\r\n \r\n     return h + m + s + mi;\r\n \r\n   }<\/pre>\n<p>\u683c\u5f0f\u4e3a\u5c0f\u65f6\/\u5206\/\u79d2\/\u6beb\u79d2\uff08\u5982\uff1a24903600 \u2013&gt; 06\u5c0f\u65f655\u520603\u79d2\uff09\u3002<\/p>\n<pre class=\"lang:default decode:true \">\/**\r\n \r\n    *\r\n \r\n    * @param millis\r\n \r\n    *            \u8981\u8f6c\u5316\u7684\u6beb\u79d2\u6570\u3002\r\n \r\n    * @param isWhole\r\n \r\n    *            \u662f\u5426\u5f3a\u5236\u5168\u90e8\u663e\u793a\u5c0f\u65f6\/\u5206\/\u79d2\/\u6beb\u79d2\u3002\r\n \r\n    * @param isFormat\r\n \r\n    *            \u65f6\u95f4\u6570\u5b57\u662f\u5426\u8981\u683c\u5f0f\u5316\uff0c\u5982\u679ctrue\uff1a\u5c11\u4f4d\u6570\u524d\u9762\u8865\u5168\uff1b\u5982\u679cfalse\uff1a\u5c11\u4f4d\u6570\u524d\u9762\u4e0d\u8865\u5168\u3002\r\n \r\n    * @return \u8fd4\u56de\u65f6\u95f4\u5b57\u7b26\u4e32\uff1a\u5c0f\u65f6\/\u5206\/\u79d2\/\u6beb\u79d2\u7684\u683c\u5f0f\uff08\u5982\uff1a24903600 --&gt; 06\u5c0f\u65f655\u520603\u79d2\uff09\u3002\r\n \r\n    *\/\r\n \r\n   public static String millisToStringMiddle( long millis, boolean isWhole,\r\n \r\n       boolean isFormat) {\r\n \r\n     return millisToStringMiddle(millis, isWhole, isFormat, \"\u5c0f\u65f6\" , \"\u5206\u949f\" , \"\u79d2\" );\r\n \r\n   }\r\n \r\n   public static String millisToStringMiddle( long millis, boolean isWhole,\r\n \r\n       boolean isFormat, String hUnit, String mUnit, String sUnit) {\r\n \r\n     String h = \"\" ;\r\n \r\n     String m = \"\" ;\r\n \r\n     String s = \"\" ;\r\n \r\n     if (isWhole) {\r\n \r\n       h = isFormat ? \"00\" + hUnit : \"0\" + hUnit;\r\n \r\n       m = isFormat ? \"00\" + mUnit : \"0\" + mUnit;\r\n \r\n       s = isFormat ? \"00\" + sUnit : \"0\" + sUnit;\r\n \r\n     }\r\n \r\n     long temp = millis;\r\n \r\n     long hper = 60 * 60 * 1000 ;\r\n \r\n     long mper = 60 * 1000 ;\r\n \r\n     long sper = 1000 ;\r\n \r\n     if (temp \/ hper &gt; 0 ) {\r\n \r\n       if (isFormat) {\r\n \r\n         h = temp \/ hper &lt; 10 ? \"0\" + temp \/ hper : temp \/ hper + \"\" ;\r\n \r\n       } else {\r\n \r\n         h = temp \/ hper + \"\" ;\r\n \r\n       }<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u62e8\u6253\u7535\u8bdd public static void call(Context context, String ph [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[],"class_list":["post-916","post","type-post","status-publish","format-standard","hentry","category-android"],"_links":{"self":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts\/916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=916"}],"version-history":[{"count":1,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts\/916\/revisions"}],"predecessor-version":[{"id":917,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=\/wp\/v2\/posts\/916\/revisions\/917"}],"wp:attachment":[{"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.siediyer.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}