2
我有一個紮根的android設備,我通過編程方式下載和安裝更新。安裝時不會彈出用戶,要求安裝權限或顯示安裝期間可能發生的任何錯誤。一切都發生在後臺。以下是我執行安裝的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);
任何幫助將不勝感激。提前致謝!
startActivityForResult的問題是它始終返回0(失敗或成功)。檢查[this](http://stackoverflow.com/questions/6157567/install-apk-programmatically-return-value)。 – Exception
您可以使用startActivityForResult(intent,requestCode)並檢查onActivityResult方法中的requestCode和數據。 –
我試過了,但對於失敗和成功,requestCode和responseCode都是相同的,即responseCode是0,requestCode是我傳遞的整數 – Exception