मैंने स्टैक ओवरफ्लो और अन्य वेबसाइट में दिए गए कई तरीकों का प्रयास किया है लेकिन यह वास्तव में काम नहीं करता है।मैं चुपचाप एपीके को प्रोग्रामेटिक रूप से अपडेट कैसे करूं और ऐप को पुनरारंभ करूं?
मेरी समस्या यह है कि मेरे पास यह एप्लिकेशन है जिसे मुझे अद्यतन करने और अद्यतन करने के बाद, इसे स्वचालित रूप से उसी एप्लिकेशन (अपडेटेड) को चालू करना चाहिए।
यह मेरा कोड है: "। त्रुटि यहाँ है"
private synchronized void runRootUpdate() {
// Install Updated APK
String command = "pm install -r " + downloadPath + apkFile;
Process proc = Runtime.getRuntime().exec(new String[] {"su", "-c", command});
int test = proc.waitFor(); // Error is here.
if (proc.exitValue() == 0) {
// Successfully installed updated app
doRestart()
} else {
// Fail
throw new Exception("Root installation failed");
}
}
private void doRestart() {
Intent mStartActivity = new Intent(context, MainActivity.class);
int mPendingIntentId = 123456;
PendingIntent mPendingIntent = PendingIntent.getActivity(context, mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager mgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent);
System.exit(0);
}
मेरे पर एक नजर डालें मेरा पुराना ऐप एक नया अपडेट किया गया ऐप इंस्टॉल करेगा और खुद को मार देगा, इस प्रकार कोई proc.waitFor() नहीं है और होम स्क्रीन में वापस आ गया है लेकिन नया अपडेट किया गया ऐप इंस्टॉल किया जा रहा है। हालांकि, मुझे इसे अपने आप वापस चालू करने की आवश्यकता है। क्या मैं ऐसा कर सकता हूं?
आप अब किसी भी समाधान है तो फिर आप अलार्म और कर अन्य बातों के लिए सेट करना होगा नहीं है ? –
आप इसे अपडेट करने की योजना बना रहे हैं? यह तब होता है जब आपका एप्लिकेशन सराय अग्रभूमि चला रहा है? –