有时候,需要一些小的功能,找到以后,就把它贴到了博客下面,作为留言,查找起来很不方便,所以就整理一下,方便自己和他人。

一、 获取系统版本号:

PackageInfo info = this.getPackageManager().getPackageInfo(this.getPackageName(), 0);int versionCode=nfo.versionCodestring versionName=info.versionNam

二、获取系统信息:

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));          //set Application Name shareItem.setLabel(pManager.getApplicationLabel(pinfo.applicationInfo).toString());         //set Package Name shareItem.setPackageName(pinfo.applicationInfo.packageName); }
五、解决listview上 Item上有按钮时 item本身不能点击的问题:

1. 在item试图上面添加代码: android:descendantFocusability="blocksDescendants"2.在listview里 添加代码 android:focusable="true"
六、不让文本框输入中文:

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

七、获取屏幕宽高

DisplayMetrics displayMetrics = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int height = displayMetrics.heightPixels; int width = displayMetrics.widthPixels;
八、将TabWidget显示在屏幕下方

设置TabWidget的属性 android:layout_alignParentBottom="true"
为了让tabHost显示在下方,要将RadioGroup的layout_gravity设置为bottom,再将FrameLayout的 layout_weight设置为1,这样就可以将RadioGroup撑到最下方。style="@style/main_tab_bottom"里面定义了样式文件

九、获取线程ID和线程名称:

Log.v("@@@@@@@@@@",Thread.currentThread().getId()+" "+Thread.currentThread().getName());

十、android中调用其它android应用

ComponentName comp = new ComponentName("com.Test","com.login.Main");  intent = new Intent();  intent.setComponent(comp);  intent.setAction("android.intent.action.VIEW");  startActivity(intent);
十一、禁止软键盘弹出

EditText有焦点(focusable为true)阻止输入法弹出 editText.setInputType(InputType.TYPE_NULL); // 关闭软键盘 当EidtText无焦点(focusable=false)时阻止输入法弹出 InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
【Android】EditText标签调用键盘
在xml文件中EditText标签有一个属性android:editable="false"和android:numeric="integer"

android:numeric="integer"表示只允许输入数字,此属性可以限制用户只能输入数字内容。
android:editable表示是否可以输入内容TRUE表示可以输入,false表示不允许输入内容;
当为android:editable="false"时,点击输入框,虚拟键盘是显示不出来的,不过当设置了 android:editable=""属性时,不管是false还是true,在其后加入android:numeric="integer"属性时,是可以输入数字内容了;这里没搞明白是怎么回事,也许是numeric把前面的属性覆盖掉了。
当android:editable="false"时,在java类里如果再规定EditText.setEnabled(true)时,虚拟键盘还是不会显示的。

十二、模拟器的各种规格与分辨率对照:
单位:像素 WVGA854: 854*480WVGA800: 800*480HVGA: 480*320 QVGA: 320*240WQVGA432:432*240 WQVGA400:400*240 
十三、调用Android其他Context的Activity
Context c = createPackageContext("chroya.demo", Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);//载入这个类Class clazz = c.getClassLoader().loadClass("chroya.demo.Main");//新建一个实例Object owner = clazz.newInstance();//获取print方法,传入参数并执行Object obj = clazz.getMethod("print", String.class).invoke(owner, "Hello");
这个方法有两个参数:
1、packageName 包名,要得到Context的包名
2、 flags 标志位,有CONTEXT_INCLUDE_CODE和CONTEXT_IGNORE_SECURITY两个选项。 CONTEXT_INCLUDE_CODE的意思是包括代码,也就是说可以执行这个包里面的代码。CONTEXT_IGNORE_SECURITY的意思 是忽略安全警告,如果不加这个标志的话,有些功能是用不了的,会出现安全警告。
十四、android4.0Dialog风格小技巧

4.0上如果还用Theme.Dialog,只能说很土,跟整体UI风格差别很大

请使用android:theme="@android:style/Theme.Holo.DialogWhenLarge"


十五、程序中安装apk
Intent intent = new Intent();       intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.setAction(android.content.Intent.ACTION_VIEW);intent.setDataAndType(Uri.fromFile(“APK”),"application/vnd.android.package-archive");startActivity(intent);

其中“apk”为你要安装的那个文件。

十六、获取设备型号、SDK版本及系统版本

String device_model = Build.MODEL; // 设备型号  String version_sdk = Build.VERSION.SDK; // 设备SDK版本  String version_release = Build.VERSION.RELEASE; // 设备的系统版本  

十七、图片分析功能

public void SharePhoto(String photoUri,final Activity activity) {      Intent shareIntent = new Intent(Intent.ACTION_SEND);      File file = new File(photoUri);      shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));      shareIntent.setType("image/jpeg");      StartActivity(Intent.createChooser(shareIntent, activity.getTitle()));  }  


十八、linux关机命令

在Windows下,按着电源键4秒强制关机,在Linux下强烈不建议这么做。Windows由于是单用户、“假多”任务的情况,所以即使你的计算机关机,也不会对别人造成影响。不过在Linux中,由于每个程序都是在后台执行的,因此,在你看不到的屏幕背后可能有很多人同时在你的主机上工作。而且,若不正常关机可能会造成文件系统的损毁。所以,正常情况下,要关机时需要注意下面几件事情:

(1)查看系统的使用状态。

要看目前有谁在线,可以用who命令。要看网络的联机状态,可以用netstat-a命令。要看后台执行那个的程序可以执行ps-aux命令。

(2)通知在线用户的关机时刻

这个时候可以使用shutdown命令

Shutdown命令:语法:shutdown[-t秒][-arkhncfF]时间 警告消息-t:后面加描述表示过几秒之后关机。-k:不是真的关机,仅仅发出警告消息。-r:将系统服务停掉之后重启。-h:将系统服务停掉之后立即关机。-f:关机并开机之后,强制跳过fsck的磁盘检查。-F:系统重启之后,强制进行fsck的磁盘检查。-c:取消已经进行的shutdown命令内容。另外,重启关机命令有reboot、halt、poweroff。其实在默认情况下,都完成一样的工作。halt先调用shutdown,而shutdown最后调用halt。不过,shutdown可以根据目前已经启动的服务来逐次关闭服务后才关机;而halt能够在不理会目前系统情况下,进行硬件关机的特殊功能。除了这些,还有一个关机命令是init 0init是切换执行等级的命令。Linux共有7种执行等级,比较重要的是下面4种等级:run level 0:关机run level 3:纯命令行模式run level 5:含有图形界面模式run level 6:重启

十九、让自己的应用不被kill掉 可以在frameworks\base\services\java\com\android\server\am\ActivityManagerService.java这个类的forceStopPackage中加一个条件:
public void forceStopPackage(final String packageName) {        if (checkCallingPermission(android.Manifest.permission.FORCE_STOP_PACKAGES)                != PackageManager.PERMISSION_GRANTED) {            String msg = "Permission Denial: forceStopPackage() from pid="                    + Binder.getCallingPid()                    + ", uid=" + Binder.getCallingUid()                    + " requires " + android.Manifest.permission.FORCE_STOP_PACKAGES;            Slog.w(TAG, msg);            throw new SecurityException(msg);        }                long callingId = Binder.clearCallingIdentity();        try {            IPackageManager pm = ActivityThread.getPackageManager();            int pkgUid = -1;            synchronized(this) {                try {                    pkgUid = pm.getPackageUid(packageName);                } catch (RemoteException e) {                }                if (pkgUid == -1) {                    Slog.w(TAG, "Invalid packageName: " + packageName);                    return;                }                //begin:加入一个判断条件                if (packageName.equals("你的进程名")) {                    return;                }                //end: 加入一个判断条件                                forceStopPackageLocked(packageName, pkgUid);            }        } finally {            Binder.restoreCallingIdentity(callingId);        }    }

这样的话在任务管理器里可以保证KISS不掉的;
还有在这个方法上还有个方法clearApplicationUserData中保证如果是该进程就不让调用forceStopPackage()方法。
另:其他方法:
1,首先在你的service的onDestory方法里面写上启动你自己的代码,为什么要写这个?因为如果用户是在设置->应用程序->正在运行服务这里面杀掉你service的话会调用到onDestory方法的,这里就可以启动了, 2:监听屏幕关闭广播,屏幕已关闭,就启动服务。 3:监听屏幕解锁广播,一样的道理,这样,基本上,你的service就达到永不停止了。对用户来说有点变态,但很多软件都这样。
二十、EditText获取焦点
EditText.requestFoucus()

更多相关文章

  1. Android(安卓)JNI的基本使用(CMake)
  2. Android基于XMPP Smack Openfire开发IM(4)获取好友列表
  3. Android上获取本机安装的应用程序
  4. Android(安卓)怎么获取手机端的ip地址
  5. Android(安卓)源码编译学习笔记(一)
  6. Android(安卓)中关于Environment类的总结
  7. Android获取设备屏幕宽高pix值的方法
  8. Android(安卓)个性化控件整理
  9. Android实现来电自动挂断实现机制

随机推荐

  1. win10环境下Android(安卓)SDK下载安装及
  2. Android和蓝牙GPS结合的方法
  3. Android(安卓)属性动画
  4. Android消息机制 空闲消息处理器
  5. 【Android游戏开发十五】关于Android(安
  6. android 获取文件夹、文件的大小 以B、KB
  7. android中用Spannable在TextView中设置超
  8. Android(安卓)中 shape 图形的使用
  9. Android(安卓)HAL是如何被调用的
  10. Android中SQLite数据库操作(2)——SQLiteOp