一,获取系统版本号:

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. 描述一下ArrayList和LinkedList各自实现和区别

    ArrayList,LinkedList,Vestor这三个类都实现了java.util.List接口,但它们有各自不同的特性,主要如下: 一.同步性 ArrayList,LinkedList是不同步 ...

  2. bzoj1345

    贪心 这并没有想清楚就看题解了... 看上去肯定是贪心,那么怎么贪呢?事实上,我们想一下,假设max(a[i],a[i+1])中a[i]没有合并,那么后面取max肯定是a[i+1],因为如果后面合并之 ...

  3. 常见的几种异常类型Exception

    转自:https://blog.csdn.net/niceworkgogogo/article/details/71746208 算数异常类:ArithmeticExecption 空指针异常类型:N ...

  4. php验证邮箱是否合法

    下面我来总结了在php邮箱验证的正则表达式以及还可以checkdnsrr函数来验证你输入的邮箱是否是有效的哦,这样可以更好的过滤到无效邮箱地址哦.     域名由各国文字的特定字符集.英文字母.数字及 ...

  5. 【Leetcode】115. Distinct Subsequences

    Description: Given two string S and T, you need to count the number of T's subsequences appeared in ...

  6. 笨拙而诡异的 Oracle(之二)

    有一张表,很多数据:   想取某个月的数据.初始的想法很简单,根据日期(RQ)形成条件即可:  符合条件的记录数是 129835,但耗时太长:14.515 秒(RQ字段是做过索引的)!直观的反应是 O ...

  7. Python Base of Scientific Stack(Python基础之科学栈)

    Python Base of Scientific Stack(Python基础之科学栈) 1. Python的科学栈(Scientific Stack) NumPy NumPy提供度多维数组对象,以 ...

  8. 努比亚(nubia) Z18 mini NX611J 解锁BootLoader 并刷入recovery ROOT

    努比亚(nubia)  Z18 mini NX611J解锁BootLoader 并刷入recovery ROOT 工具下载链接:https://pan.baidu.com/s/1toU-mTR9FNE ...

  9. Android项目实战_手机安全卫士流量统计

    ## 1.抽屉控件SlidingDrawer:一定要配置android:handle(把手)和android:content(内容),并在子View中添加把手和内容的布局```java <Sli ...

  10. python网络编程调用recv函数完整接收数据的三种方法

    最近在使用python进行网络编程开发一个通用的tcpclient测试小工具.在使用socket进行网络编程中,如何判定对端发送一条报文是否接收完成,是进行socket网络开发必须要考虑的一个问题.这 ...