2012-01-28 20 views
7

संभव डुप्लिकेट:
Android: install .apk programmaticallyएंड्रॉयड आवेदन आत्म अद्यतन

मैं अपने एंड्रॉयड एप्लिकेशन को अपडेट करने की जरूरत है। आंतरिक रूप से कार्यक्रम, मैं नया संस्करण डाउनलोड करता हूं। मैं उस संस्करण को वर्तमान संस्करण को कैसे बदल सकता हूं (प्रोग्रामेटिक रूप से)?

URL url = new URL("http://www.mySite.com/myFolder/myApp.apk"); 
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
try 
{ 
    FileOutputStream fos = this.getApplicationContext().openFileOutput("myApp.apk", Context.MODE_WORLD_READABLE|Context.MODE_WORLD_WRITEABLE); 

    InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 
    BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8")); 

    StringBuilder sb = new StringBuilder(); 

    byte[] buffer = new byte[8192]; 
    int len; 
    while ((len = in.read(buffer)) != -1) 
    { 
     // EDIT - only write the bytes that have been written to 
     // the buffer, not the whole buffer 
     fos.write(buffer, 0, len); // file to save app 
    } 
    fos.close(); 

    ....  here I have the file of new app, now I need use it 

उत्तर

11

अपडेट किए गए APK समान पैकेज नाम है और एक ही कुंजी तुम सिर्फ एक आशय जो एक डिफ़ॉल्ट एंड्रॉयड संस्थापक कॉल करेंगे भेज सकते हैं के साथ हस्ताक्षर किए है, तो। स्थापित एपीके अतिरंजित हो जाएगा। एक समस्या पैकेज पार्स है -

Intent intent = new Intent(Intent.ACTION_VIEW); 
Uri uri = Uri.fromFile(new File(pathToApk)); 
intent.setDataAndType(uri, "application/vnd.android.package-archive"); 
startActivity(intent); 
+0

हाय @lexmiir, धन्यवाद उत्तर के लिए, मैं तुम्हें क्या कहा और अब मैं एक चेतावनी संवाद कह पार्सर त्रुटि मिल गया है। कोई सुराग? :-) – nonickh

+0

हाय @nonickh, क्या आपने एक ही कुंजी के साथ एपीके दोनों पर हस्ताक्षर किए? यह त्रुटि तब दिखाई दे सकती है जब एक ही पैकेज नाम वाले अनुप्रयोगों को विभिन्न कुंजियों के साथ हस्ताक्षरित किया जाता है – lexmiir

+0

हाय @lexmiir, देरी के लिए खेद है, मैंने दो फाइलों की तुलना की और वे अलग हैं, शायद साइट की प्रतिलिपि बनाने की प्रक्रिया के कारण, मैं पहले कोशिश करता हूं इस समस्या को हल करने के लिए, आपके समर्थन के लिए आभारी – nonickh

संबंधित मुद्दे