Android常用的几个系统参数相关代码片段
2016-06-27 13:58
477 查看
1.收集设备信息,用于信息统计分析
2.是否有SD卡
3.动态隐藏软键盘
4动态显示软键盘
5.回到桌面,程序后台运行
6.获取状态栏和标题栏高度(注意,如果没有ActionBar,那么获取的高度将和上面的是一样的,只有状态栏的高度)
7.获取MCC+MNC代码 (SIM卡运营商国家代码和运营商网络代码) 仅当用户已在网络注册时有效, CDMA 可能会无效
(中国移动:46000 46002, 中国联通:46001,中国电信:46003)
public static Properties collectDeviceInfo(Context context) { Properties mDeviceCrashInfo = new Properties(); try { PackageManager pm = context.getPackageManager(); PackageInfo packageInfo = pm.getPackageInfo(context.getPackageName(), PackageManager.GET_ACTIVITIES); if (packageInfo != packageInfo) { mDeviceCrashInfo.put("VERSION_NAME", packageInfo.versionName == null ? "not set" : packageInfo.versionName); mDeviceCrashInfo.put("VERSION_CODE", packageInfo.versionCode); } } catch (PackageManager.NameNotFoundException e) { Log.e("demo0606", "Error while collect package info", e); } Field[] fields = Build.class.getDeclaredFields(); for (Field field : fields) { try { field.setAccessible(true); mDeviceCrashInfo.put(field.getName(), field.get(null)); } catch (Exception e) { Log.e("demo0606", "Error while collect crash info", e); } } return mDeviceCrashInfo; } public static String collectDeviceInfoStr(Context context) { Properties prop = collectDeviceInfo(context); Set deviceInfos = prop.keySet(); StringBuilder deviceInfoStr = new StringBuilder(""); for (Iterator iter = deviceInfos.iterator(); iter.hasNext();) { Object item = iter.next(); deviceInfoStr.append( item + ":" + prop.get(item) + "\n"); } return deviceInfoStr.toString(); }
2.是否有SD卡
public static boolean haveSDCard() { return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); }
3.动态隐藏软键盘
@TargetApi(Build.VERSION_CODES.CUPCAKE) public static void hideSoftInput(Activity activity) { View view = activity.getWindow().peekDecorView(); if (view != null) { InputMethodManager inputmanger = (InputMethodManager) activity .getSystemService(Context.INPUT_METHOD_SERVICE); inputmanger.hideSoftInputFromWindow(view.getWindowToken(), 0); } } @TargetApi(Build.VERSION_CODES.CUPCAKE) public static void hideSoftInput(Context context, EditText edit) { edit.clearFocus(); InputMethodManager inputmanger = (InputMethodManager) context .getSystemService(Context.INPUT_METHOD_SERVICE); inputmanger.hideSoftInputFromWindow(edit.getWindowToken(), 0); }
4动态显示软键盘
@TargetApi(Build.VERSION_CODES.CUPCAKE) public static void showSoftInput(Context context, EditText edit) { edit.setFocusable(true); edit.setFocusableInTouchMode(true); edit.requestFocus(); InputMethodManager inputManager = (InputMethodManager) context .getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(edit, 0); }
5.回到桌面,程序后台运行
public static void goHome(Context context) { Intent mHomeIntent = new Intent(Intent.ACTION_MAIN); mHomeIntent.addCategory(Intent.CATEGORY_HOME); mHomeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); context.startActivity(mHomeIntent); }
6.获取状态栏和标题栏高度(注意,如果没有ActionBar,那么获取的高度将和上面的是一样的,只有状态栏的高度)
public static int getTopBarHeight(Activity activity) { return activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT) .getTop(); }
7.获取MCC+MNC代码 (SIM卡运营商国家代码和运营商网络代码) 仅当用户已在网络注册时有效, CDMA 可能会无效
(中国移动:46000 46002, 中国联通:46001,中国电信:46003)
public static String getNetworkOperator(Context context) { TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); return telephonyManager.getNetworkOperator(); }
相关文章推荐
- Material Design 最全解析_3 主题Theme
- 两个view间淡入淡出 Crossfading Two Views——翻译自developer.android.com Training
- Android 简易刮刮乐效果
- Android通知栏微技巧,那些你所没关注过的小细节
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)
- Android:layout_gravity和android:gravity的区别
- Android 屏幕适配方案
- Android ActionBar完全解析
- Fresco 专为Android加载图片
- 安卓百度地图基本配置及画线路轨迹问题
- 对Context的重新思考
- 如何解决android模拟器DPAD not enabled in AVD
- Android弹出软键盘时如何将底部顶上去
- android项目 从零到一(0——>1)
- 为Android项目添加retrolambda插报错
- android 开源库之图片加载-Universal-Imageoader和Picasso的使用和比较
- Android中zip,tar.gz压缩与解压缩
- Android ANR 分析解决方法
- 安卓模拟器Genymotion安装教程
- Android LayoutInflater&LayoutInflaterCompat源码解析