判断手机是否支持程序安装(版本判断)
2011-12-18 08:06
399 查看
今天早晨起来看了皇马和塞维利亚的比赛,睡不着了,不错,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状态下,程序会完全推出。
最后,看一下程序效果图:
而圣卡西在上半场的几次精彩扑救异常关键。好了,闲话少扯,开始正题。
改写了书上的一个小例子,判断手机是否支持安装程序的版本,在这段代码里,有获取系统版本号,获取程序版本号等功能。打开程序的时候,会跳出一个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状态下,程序会完全推出。
最后,看一下程序效果图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/26/486c56ead7664dd4815d466e65aa328b.gif)
相关文章推荐
- 程序里判断当前手机是否支持WLAN网络
- 教你怎么判断手机是否已安装某程序,然后调用该程序
- Android 判断手机中是否有某个安装程序
- 浏览器网页判断手机是否安装IOS/Android客户端程序
- Android之获取手机上已安装的所有的应用程序的信息,并判断是否安装了某应用程序(系统程序或非系统应用程序判断)
- [Android 特效] 教你怎么判断手机是否已安装某程序(转)
- [Android] 判断手机上是否安装了某个程序
- 获取手机上apk文件信息类,主要是判断是否安装再手机上了,安装的版本比较现有apk版本信息
- Android编程判断手机上是否安装了某个程序的方法
- 浏览器判断检测手机中是否安装了ios/android客户端程序
- android程序中 通过包名判断手机上是否已安装app
- 教你怎么判断手机是否已安装某程序,然后调用该程序
- 教你怎么判断手机是否已安装某程序,然后调用该程序
- 判断手机操作系统版本是否允许运行程序
- 判断手机中是否安装了已知包名的程序
- [Android] 判断手机上是否安装了某个程序
- 判断手机是否安装某程序的方法:
- [Android 特效] 教你怎么判断手机是否已安装某程序(转)
- Installshield 在安装或者卸载过程中,判断某一程序是否正在运行
- 判断是否安装flash player及当前版本的JS代码