Android常用程式碼

iteye_21202發表於2013-05-07

一、獲取系統版本號:

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

int versionCode=nfo.versionCode 

string 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));

解決listview上 Item上有按鈕時 item本身不能點選的問題:

1. 在item試圖上面新增程式碼: android:descendantFocusability="blocksDescendants" 

2.在listview裡 新增程式碼 android:focusable="true"

不讓文字框輸入中文:

1. 在item試圖上面新增程式碼: android:descendantFocusability="blocksDescendants" 

2.在listview裡 新增程式碼 android:focusable="true"

獲取螢幕寬高

DisplayMetrics displayMetrics = new DisplayMetrics();  

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

int height = displayMetrics.heightPixels;  

int width = displayMetrics.widthPixels;

程式中安裝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);
獲取裝置型號、SDK版本及系統版本
String device_model = Build.MODEL; // 裝置型號    

String version_sdk = Build.VERSION.SDK; // 裝置SDK版本    

String version_release = Build.VERSION.RELEASE; // 裝置的系統版本

當listview滑動到底部或者頂部,會出現金色動畫,去掉的辦法

listView.setOverScrollMode(View.OVER_SCROLL_NEVER);

獲取應用程式下所有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;

 }


檢測字串中是否包含漢字
public static boolean checkChinese(String sequence) {

       final String format = "[\\u4E00-\\u9FA5\\uF900-\\uFA2D]";

       boolean result = false;

       Pattern pattern = Pattern.compile(format);

       Matcher matcher = pattern.matcher(sequence);

       result = matcher.find();

       return result;

   }


檢測字串中只能包含:中文、數字、下劃線(_)、橫線(-)
public static boolean checkNickname(String sequence) {

       final String format = "[^\\u4E00-\\u9FA5\\uF900-\\uFA2D\\w-_]";

       Pattern pattern = Pattern.compile(format);

       Matcher matcher = pattern.matcher(sequence);

       return !matcher.find();

   }

相關文章