一,获取系统版本号:

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程序片段--转

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

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

    20个非常有用的Java程序片段 来源:码农网   时间:2015-03-17 10:23:28   阅读数:1057 分享到:0 [导读] 下面是20个非常有用的Java程序片段,希望能对你有用.1 ...

  3. 20非常有用的Java程序片段(1)

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

  4. java 程序片段_20个非常有用的Java程序片段

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

  5. 20非常有用的Java程序片段(3)

    15. 创建ZIP和JAR文件 import java.util.zip.*; import java.io.*; publicclass ZipIt { publicstaticvoid main( ...

  6. 20非常有用的Java程序片段(11-15)

    11. HTTP 代理设置 阅读这篇 文章 了解更多细节. 1 2 3 4 5 System.getProperties().put("http.proxyHost", " ...

  7. 一篇文章一张思维导图看懂Android学习最佳路线

    一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...

  8. Android学习路线总结

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

  9. Android学习指南

    目录 核心分析内容 1.学什么 1.1.Android基础 & 常用 1.2.Android进阶 1.3.与时俱进.热门技术 1.4.编程语言:Java与Java虚拟机 1.5.计算机基础 1 ...

最新文章

  1. 如何强制Visual Studio重新生成aspx / ascx文件的.designer文件?
  2. 2020-11-5(安卓)
  3. virtualenvwrapper 的安装和使用
  4. Android--通知之Notification
  5. matlab从矩阵中取rp开头文件,matlab trainrp
  6. mysql如何实现管理权限分离_基于SpringCloud+vue(ElementUI)+mySQL前后端分离设计之--搭建权限管理系统...
  7. hive拉链表实现方案一
  8. vs2015 + opencv3.4.0 + qt msvc2015_64-5.7.1 显示图像
  9. 自编基于jQuery实现分页插件
  10. innodb redo buffer的认识
  11. html站点的定义,HTML是什么?您构建网页的一站式解决方案
  12. 初识小熊派——小熊派功能简介
  13. UltraEdit 25以后的版本 绕过试用期
  14. 慧荣SM2246EN开卡Toggle 8贴东芝闪存SSD失败解决方法
  15. 13 【操作mysql数据库】
  16. 你打英雄联盟or王者荣耀为什么老是匹配到怨种队友,进来看
  17. 怎么让计算机响音乐,如何让电脑声音更大一点
  18. win10 汇编工具 em8086安装
  19. 通过Kong实现金丝雀发布
  20. 葡萄牙Sapo Mail青蛙邮箱 免费16GB电子邮箱

热门文章

  1. xshell连接成功但无法输入命令_如何解决cisco设备无法进入系统问题?
  2. 防止linux系统文件被误删除,Linux系统防止误删除文件
  3. 什么是线程单线程和多线程_什么是多线程?看我多线程七十二变,你能记住吗?...
  4. gradle是干什么_gradle和ant等构建工具有什么核心优势?
  5. 帆软报表在已经搭载服务器上开发_史上最全企业数据产品选型对比(含数仓、报表、BI、中台、数据治理)...
  6. java web权限设计_java web简单权限管理设计
  7. php rpoplpush,Redis Rpoplpush 命令
  8. cname 别名记录 解析过程_西部数码操作解析:如何为服务器创建别名地址
  9. oracle 索引 序列,【Oracle】表、视图、序列、索引
  10. Node.js ES6模块化