以编程方式执行时捕获安装失败

时间:2016-04-15 13:24:28

标签: android android-intent

我有一个root用户设备,我以编程方式下载并安装更新。安装时没有弹出用户,要求获得安装许可或显示安装过程中可能发生的任何错误。一切都在后台发生。以下是执行安装的SoftwareInstallActivity

public class SoftwareInstallActivity extends Activity{

private TextView titleView;
private ImageView loadingView;
private String fileName =null;
private static Logger log=Logger.getRootLogger();
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.alert_screen);
    log.debug("Launching SoftwareInstall Activity");
    fileName=getIntent().getExtras().getString("FileName");
    if(fileName==null && fileName.length()==0){
        log.debug("filename is null or of zero length");
        return;         
    }
    log.debug("Name of apk file"+fileName);
    loadingView       = (ImageView)findViewById(R.id.loading);          
    titleView         = (TextView)findViewById(R.id.text1);
    log.debug("Starting software Install");
    titleView.setText("Installing Software Update");
    try{
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType( Uri.fromFile(new File(fileName)), 
        "application/vnd.android.package-archive");
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        startActivity(intent);
    }catch(Exception e){
        e.printStackTrace();
    }

}
@Override
public void onResume() {
    super.onResume();
    log.debug("On Resume Software Install activity.");
}

@Override
public void onPause(){
    super.onPause();
    log.debug("On Pause Software Install activity.");
}

}

我面临的问题是在我的试验中,软件安装失败甚至没有任何例外。这是非常罕见的情况,但我仍然想要处理它。那么有没有办法找出安装是否真的成功,即有没有办法找到下面给定的一组线的成功或失败?

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType( Uri.fromFile(new File(fileName)), 
        "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent);

任何帮助将不胜感激。提前谢谢!

1 个答案:

答案 0 :(得分:0)

使用startActivityForResult,这些方法可以检查响应。校验: startActivityForResult