你是自己实现安装还是通过系统安装?
前者的话  有个监听  class PackageInstallObserver extends IPackageInstallObserver.Stub {
后者的话  可以监听广播来判断是否安装完

解决方案 »

  1. public void install()
    {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(
    Uri.parse("file://" + SD_PATH + fileName),
    "application/vnd.android.package-archive");
    context.startActivity(intent);
    }
    安装方法。。
    这应该怎么样判断啊?
      

  2. public void install()
    {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(
    Uri.parse("file://" + SD_PATH + fileName),
    "application/vnd.android.package-archive");
    context.startActivity(intent);
    }
    安装方法。。
    这应该怎么样判断啊?
    这又不是静默安装,不用判断吧
      

  3. public void install()
    {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(
    Uri.parse("file://" + SD_PATH + fileName),
    "application/vnd.android.package-archive");
    context.startActivity(intent);
    }
    安装方法。。
    这应该怎么样判断啊?
    这又不是静默安装,不用判断吧
    额。 那我也怎么在这安装完后,删除安装文件啊。。
    我试过在这方法后面直接加删除,结果就会安装包先被删除了。。
      

  4. 安装完了会有广播的private class InstallReceiver extends BroadcastReceiver{  
            @Override  
            public void onReceive(Context context, Intent intent) {  
                // TODO Auto-generated method stub  
                if(intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)){  
                    //Toast.makeText(context, intent.getDataString().substring(8), 2000).show();  
                    String packName = intent.getDataString().substring(8);
                    //packName为所安装的程序的包名  
                    allPackage.add(packName);
                    for(InstallAppInfo info:installAppMap.values()){
                     if(info.getPackageName().equals(packName)){
                     installAppMap.remove(info.getId());
                     JSONObject install=new JSONObject();
                     try {
         install.put("package_name", packName);
         install.put("result", true);
         } catch (JSONException e) {
         Log_E("in class InstallReceiver and get install object occur error");
         }
                     callJavaScriptMethod(installcallback, install.toString());
                     break;
                     }
                    }
                }  
            }  
        }  
      

  5. 额,这广播没看懂啊。。
    求大神指点啊。。private class InstallReceiver extends BroadcastReceiver{  
            @Override  
            public void onReceive(Context context, Intent intent) {  
                // TODO Auto-generated method stub  
                if(intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)){  
                    //Toast.makeText(context, intent.getDataString().substring(8), 2000).show();  
                    String packName = intent.getDataString().substring(8);
                    //packName为所安装的程序的包名                  
                   //根据packName,再进行比对
                }  
            }  
        }  
      

类似问题 »