一,获取系统版本号:

PackageInfo info = this.getPackageManager().getPackageInfo(this.getPackageName(), 0);

int versionCode=nfo.versionCode

string versionName=info.versionNam

其实我们用的更多的是编译的版本号Build.VERSION.SDK_INT,范围从0到目前的24,也就是应用在哪个环境下运行,用法如下:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){

//就做自己的操作

}

二、获取系统信息:

String archiveFilePath="sdcard/download/Law.apk";//安装包路径

PackageManager pm = getPackageManager();

PackageInfo info = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES);

if(info != null){

ApplicationInfo appInfo = info.applicationInfo;

String appName = pm.getApplicationLabel(appInfo).toString();

String packageName = appInfo.packageName; //得到安装包名称

String version=info.versionName; //得到版本信息

Toast.makeText(test4.this, "packageName:"+packageName+";version:"+version, Toast.LENGTH_LONG).show();

Drawable icon = pm.getApplicationIcon(appInfo);//得到图标信息

TextView tv = (TextView)findViewById(R.id.tv); //显示图标

tv.setBackgroundDrawable(icon);

三、获取安装路径和已安装程序列表

(1)android中获取当前程序路径

getApplicationContext().getFilesDir().getAbsolutePath()

(2)android取已安装的程序列表

List<PackageInfo> packageInfoList = getPackageManager().getInstalledPackages(0);

四、获取图片、应用名、包名

PackageManager pManager = MessageSendActivity.this.getPackageManager();

List<PackageInfo> appList = Utils.getAllApps(MessageSendActivity.this);

for(int i=0;i<appList.size();i++) {

PackageInfo pinfo = appList.get(i);

ShareItemInfo shareItem = new ShareItemInfo();

//set Icon

shareItem.setIcon(pManager.getApplicationIcon(pinfo.applicationInfo));

五、解决listview上 Item上有按钮时 item本身不能点击的问题:

1. 在item试图上面添加代码: android:descendantFocusability="blocksDescendants"

2.在listview里 添加代码 android:focusable="true"

六、不让文本框输入中文:

android:digits="1234567890qwertyuiopasdfghjklzxcvbnm`-=[]\;,./~!@#$%^*()_+}{:?&<>"'" 这样就不会输入中文了。

七,获取屏幕宽高

DisplayMetrics displayMetrics = new DisplayMetrics();

this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

int height = displayMetrics.heightPixels;

int width = displayMetrics.widthPixels;

八, 获取设备型号、SDK版本及系统版本

String device_model = Build.MODEL; // 设备型号

String version_sdk = Build.VERSION.SDK; // 设备SDK版本

int version_int = Build.VERSION.SDK_INT //获取设备版本号

String version_release = Build.VERSION.RELEASE; // 设备的系统版本

九,获取应用程序下所有Activity

public static ArrayList<String> getActivities(Context ctx) {

ArrayList<String> result = new ArrayList<String>();

Intent intent = new Intent(Intent.ACTION_MAIN, null);

intent.setPackage(ctx.getPackageName());

for (ResolveInfo info : ctx.getPackageManager().queryIntentActivities(intent, 0)) {

result.add(info.activityInfo.name);

}

return result;

}

Android学习总结(5)——9个非常有用的Andorid 程序片段的更多相关文章

  1. 20个非常有用的Java程序片段

    下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric strin ...

  2. 20个非常有用的Java程序片段--转

    原文地址:http://geek.csdn.net/news/detail/236591 下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = ...

  3. 整理:20个非常有用的Java程序片段

    下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric strin ...

  4. 收集的20个非常有用的Java程序片段

    下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric strin ...

  5. 非常有用的Java程序片段

    1.向文件末尾添加内容 BufferedWriter out = null; try { out = new BufferedWriter(new FileWriter(”filename”, tru ...

  6. 【分享】20个非常有用的Java程序片段

    福利来啦!!! 刚看到的一篇好东东,分享给大家,这些代码留着哦,以后会用得着的... 原文地址:http://developer.51cto.com/art/201306/398347.htm 1. ...

  7. 阿里P7整理20个非常有用的Java程序片段,你知道吗?

    1.字符串有整型的相互转换 String a = String.valueOf(2);  //integer to numeric string   int i = Integer.parseInt( ...

  8. Java-20个非常有用的程序片段

    下面是20个非常有用的Java程序片段,希望能对你有用. 1.字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric string ...

  9. Android学习路线总结,绝对干货

    title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...

随机推荐

  1. bzoj2662 [BeiJing wc2012]冻结 ——分层图

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2662 分层图: 我也不知道我写的是不是 bfs (dijkstra?). 代码如下: #in ...

  2. bzoj1690

    二分+分数规划+dfs判环 跟1486很像,但是我忘记怎么判环了, 我们可以写一个dfs,如果当前节点的距离小于更新的距离,而且这个点已经在当前访问过了,那么就是有环了,如果没有访问过就继续dfs,每 ...

  3. bzoj3527

    http://www.lydsy.com/JudgeOnline/problem.php?id=3527 今天肿么这么颓废啊...心态崩了 首先我们得出Ei=Fi/qj,然后我们设f[i]=1/i/i ...

  4. IDEA Spark程序报错处理

    错误一: // :: ERROR Executor: Exception ) java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Prod ...

  5. ubuntu16.04 Flume 安装

    Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并 ...

  6. 确定比赛名次(toposort)

    http://acm.hdu.edu.cn/showproblem.php?pid=1285 #include <stdio.h> #include <string.h> ; ...

  7. P1452 Beauty Contest

    传送门 求凸包周长,用旋转卡壳,具体可见yyb大佬的博客 顺便一提这题暴力+随机化也能过 暴力代码 //minamoto #include<bits/stdc++.h> #define r ...

  8. Django day26 HyperlinkedIdentityField,序列化组件的数据校验以及功能的(全局,局部)钩子函数,序列化组件的反序列化和保存

    一:HyperlinkedIdentityField(用的很少):传三个参数:第一个路由名字,用来反向解析,第二个参数是要反向解析的参数值,第三个参数:有名分组的名字 -1 publish = ser ...

  9. 使用Visual Studio Code + Node.js搭建TypeScript开发环境

    Visual Studio Code搭建Typescript开发环境 —— 相关文章: http://www.cnblogs.com/sunjie9606/p/5945540.html [注意:这里仅 ...

  10. Java系列学习(十一)-内部类

    1.内部类 (1)把类定义在另一个类的内部,该类就称为内部类 (2)内部类的访问规则 A:内部类可以直接访问外部类的成员,包括私有 B:外部类要想访问内部类的成员,必须创建对象 (3)内部类的分类 A ...