30140723_NyK0  
今天早晨起來看了皇馬和塞維利亞的比賽,睡不著了,不錯,6:2的比分確實是場進球盛宴,而聖凱西在上半場的幾次精彩撲救異常關鍵。好了,閒話少扯,開始正題。

改寫了書上的一個小例子,判斷手機是否支援安裝程式的版本,在這段代碼裡,有獲取系統版本號,獲取程式版本號等功能。打開程式的時候,會跳出一個dialog,對使用者進行提示,只是一個簡單的demo,如果要在實際中應用,還需要修改。先把所有代碼都貼出來,然後再分析下。代碼比較簡單:


public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);

if(getApplicationInfo().targetSdkVersion<=Build.VERSION_CODES.ECLAIR)
{
showInfoDialog(false, getApplicationInfo().targetSdkVersion);
Log.v("@@@@@@", ""+Build.VERSION_CODES.ECLAIR);
}else{
showInfoDialog(true, getApplicationInfo().targetSdkVersion);
Log.v("@@@@@@", ""+Build.VERSION_CODES.ECLAIR);
}
}

private void showInfoDialog(Boolean bool,int version)
{
String str=bool?"support":"not support";
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setMessage("targetSdkVersion is "+version +" "+str);
if(!bool)
{

builder.setNeutralButton("退出", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
}
});
}else{
builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
}

AlertDialog alert=builder.create();
alert.show();
}

private void exitActivity()
{
android.os.Process.killProcess(android.os.Process.myPid());
}

@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
exitActivity();
}
}佈局什麼的都挺簡單的,不多說,先看下功能代碼:



if(getApplicationInfo().targetSdkVersion<=Build.VERSION_CODES.ECLAIR)
{
showInfoDialog(false, getApplicationInfo().targetSdkVersion);
Log.v("@@@@@@", ""+Build.VERSION_CODES.ECLAIR);
}else{
showInfoDialog(true, getApplicationInfo().targetSdkVersion);
Log.v("@@@@@@", ""+Build.VERSION_CODES.ECLAIR);
}在這裡是獲得程式版本號,然後和ECLAIR(5)進行比較,這裡是使用了一個定值。因為我的模擬器使用的是2.2的版本,建的專案也是2.2,所以使用了一個小於2.2版本eclair.如果想獲取SDK版本,可以使用一下代碼:

android.os.Build.VERSION.SDK + "," + android.os.Build.VERSION.RELEASE
前半段語句是獲取SDK版本號,後半段是獲取系統版本(api-level)。如果使用上面代碼比較的話就應該是:

if(getApplicationInfo().targetSdkVersion<=Build.VERSION.SDK)
這樣子是程式版本號和手機系統版本號進行比較。

再接著看showInfoDialog這個函數:


private void showInfoDialog(Boolean bool,int version)
{
String str=bool?"support":"not support";
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setMessage("targetSdkVersion is "+version +" "+str);
if(!bool)
{

builder.setNeutralButton("退出", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
}
});
}else{
builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
}

AlertDialog alert=builder.create();
alert.show();
}函數需要傳進去兩個參數,一個是是否能夠安裝,另外一個是傳的版本號,如果能夠安裝的話,dialog顯示確定按鈕,否則顯示推出按鈕,比較簡單。

最後是結束代碼:


private void exitActivity()
{
android.os.Process.killProcess(android.os.Process.myPid());
}

@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
exitActivity();
}

這樣寫,在onpause狀態下,程式會完全推出。






原文連結:HTTP://blog.csdn.net/aomandeshangxiao/article/details/7081099
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()