2010-04-21 10 views
5

आईएएम बनाने की योजना बना रहा है, और इसे Google बाजार में प्रकाशित नहीं करना है। मैं चाहता हूं कि उपयोगकर्ता थोड़ी देर में थियर ऐप अपडेट करें, जब अपडेट सर्वर के माध्यम से आरएलएसडी होगा (चलिए इस विचार में नहीं आते कि मैं यह कैसे करूँगा) ... इसलिए इसके लिए मुझे प्रत्येक ऐप को कुछ आईडी देना होगा, तो मुझे पता है कि उस उपयोगकर्ता को अपने ऐप को अपडेट करना होगा, न कि नई स्थापना (मैं उस मामले से बचना चाहता हूं जिसमें उपयोगकर्ता के पास ऐप के दो संस्करण होंगे) .. और ऐप को नए उपयोगकर्ताओं को इंस्टॉल करें। जब मैं मैन्युअल रूप से अद्यतन करता हूं तो मैं उन ऐप्स को संस्करण के साथ कैसे हस्ताक्षर कर सकता हूं? mybe कुछ और विचार?मैन्युअल संस्करण

धन्यवाद, किरण।

उत्तर

15

आप AndroidManifest.xml में android:versionCode और android:versionName विशेषताओं का उपयोग कर सकते हैं। इस तरह, जब तक कि पैकेज का नाम एक ही है यह ओवरलैप नहीं होगा और आप अगर वहाँ एक नए संस्करण उपलब्ध है देखने के लिए इस तरह कि जानकारी प्राप्त कर सकते हैं:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="org.moo.android.myApp" 
    android:versionCode="12" 
    android:versionName="1.2.37"> 

तो फिर तुम इन मूल्यों को पढ़ सकते हैं और तुलना कर सकते हैं आपके सर्वर पर मूल्यों, इस तरह के साथ:

try 
{ 
    PackageManager manager = context.getPackageManager(); 
    PackageInfo info = manager.getPackageInfo("org.moo.android.myApp", 0); 
    int code = info.versionCode; 
    String name = info.versionName; 

    // Compare with values on the server to see if there is a new version 
} 
catch(NameNotFoundException nnf) 
{ 
    nnf.printStackTrace(); 
} 

आप एक ही अनुप्रयोग के संस्करण के लिए जाँच कर रहे हैं, तो आप context.getPackageName() साथ हार्ड-कोडेड पैकेज का नाम बदल सकते हैं।

+0

+1 यह शायद मैंने सुझाए गए "क्लीनर" संस्करण का है। (और स्पष्ट रूप से जिस तरह से आपको शायद यह करना है ;-)) –

+4

यदि आप चाहें तो हार्ड कोडिंग के बजाय आप 'context.getPackageName()' का उपयोग कर सकते हैं। मुझे लगता है। – Timmmm

0

मैं उन्हें प्रति कहने पर हस्ताक्षर करने की चिंता नहीं करता, क्यों न केवल स्ट्रिंग्स.एक्सएमएल फ़ाइल में एक मान है जिसमें संस्करण संख्या है? सर्वर पर मान के खिलाफ बस एक जांच यह निर्धारित कर सकती है कि कोई अपडेट आवश्यक है या नहीं।

+0

धन्यवाद, बीमार भी इस समाधान को आजमाएं – rayman

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