2012-01-05 16 views
14

मैं jQuery, जावास्क्रिप्ट और एचटीएमएल का उपयोग कर एक फोनगैप एंड्रॉइड मोबाइल एप्लिकेशन विकसित कर रहा हूं। मैं मोबाइल आईएमईआई प्राप्त करना चाहता हूं। मैंने इस कोड को Tutorial से आजमाया है।फोनगैप में आईएमईआई नंबर कैसे प्राप्त करें?

मुझे इस तरह की संख्या मिल रही है: 97734a345d234d। मैंने *#06# का उपयोग करके IMEI संख्या प्राप्त करने के लिए अपने डिवाइस की जांच की है। मुझे नहीं पता कि यह सही है या नहीं।

+0

अपना IMEI पुष्टि करने के लिए, यह आमतौर पर बैटरी के तहत मुद्रित है या कहीं पर छुपे हुए (और बॉक्स पर उस में आया है कि यदि उपलब्ध है)। – StackOverflowed

+0

@StackOverflowed जैसा कि आपने सही ढंग से इंगित किया है, यह आमतौर पर ** ** बैटरी के नीचे मुद्रित होता है, इसलिए इसे पढ़ने के लिए, डिवाइस को बंद करना और बैटरी को निकालना आवश्यक है। '* # 06 #' त्वरित कोड का उपयोग करके, ओपी द्वारा metioned रास्ता है, रास्ता तेज और आसान है। डिवाइस को बंद करने की आवश्यकता नहीं है। – trejder

+0

@StackOverflowed सुपर सहायक होगा यदि आप बैटरी को प्रोग्रामेटिक रूप से हटाने और मुद्रित IMEI को पढ़ने के लिए कुछ कोड प्रदान कर सकते हैं। –

उत्तर

4

आप HTML या जावास्क्रिप्ट के माध्यम से आईएमईआई उपयोग नहीं कर सकते। लेकिन आप एक ऐप लिख सकते हैं जो आपके लिए आईएमईआई पढ़ता है।

बस getDeviceId() कहते हैं। यह न भूलें कि आपको अपने मेनिफेस्ट में READ_PHONE_STATE अनुमति की आवश्यकता है।

+0

मैंने इसे इस getDeviceId() की कोशिश की है। लेकिन मुझे नेटवर्क स्थिति 1 त्रुटि के रूप में त्रुटि मिल रही है: संदर्भ त्रुटि: एक चर नहीं मिल सकता है DDiceId – Mercy

+0

@Priya लिंक किया गया फ़ंक्शन 'getDeviceId()' एक स्ट्रिंग देता है। क्या आपने एंड्रॉइड ऐप लिखा है? यह भी ध्यान दें: 'आप इस वर्ग को तुरंत चालू नहीं करते हैं; इसके बजाय, आप Context.getSystemService (Context.TELEPHONY_SERVICE) के माध्यम से किसी उदाहरण के संदर्भ को पुनर्प्राप्त करते हैं। – rekire

2

मेरा मानना ​​है कि यह केवल तभी संभव होगा यदि आप आईएमईआई के कुछ अन्य ऐप्स लॉगिंग का फायदा उठाएं और मुझे यकीन नहीं है कि कोई भी ऐसा करता है।

मान लिया जाये कि कुछ है, आदर्श रूप से एक प्रणाली अनुप्रयोग, आप लॉग पढ़ सकते हैं और है कि जानकारी के लिए उनसे पार्स कर सकते हैं।

गुड लक, सफलताओं/विफलताओं

+0

'getDeviceId()' यह एक अच्छा विकल्प भी है, अगर यह फोनगैप – TryTryAgain

+0

के साथ काम करेगा, तो मैंने इसे getDeviceId() पर कोशिश की है। त्रुटि को नेटवर्क स्थिति के रूप में प्राप्त करना 1 = संदर्भ त्रुटि: कोई चर नहीं मिल सकता है DDiceId – Mercy

+0

तब मुझे लगता है कि आपकी एकमात्र शर्त किसी भी तरह से हासिल करने के लिए है कि मैंने ऊपर दिए गए मेरे उत्तर में कैसे वर्णन किया है। – TryTryAgain

5

के साथ वापस पोस्ट वर्ग जो DroidGap वर्ग फैली में IMEI नंबर प्राप्त करें और स्थिर सदस्य में IMEI नंबर का मान बचाने के लिए और उसके बाद जहां कभी आप चाहते हैं से स्थिर क्षेत्र का उपयोग। .. उदाहरण कोड यहाँ

public class MyApp extends DroidGap 
{ 
    private static String imei; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     super.loadUrl("file:///android_asset/www/index.html"); 
     TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
     imei=tm.getDeviceId(); 
    } 
    static public String getIMEI(){ 
     return imei; 
    } 
} 
// where ever u need imei number use this code 

String imei=MyApp.getIMEI(); 
+0

** शानदार ** उदाहरण! पिटी, कि मैं आपको केवल +1 दे सकता हूं। धन्यवाद! – trejder

+0

मैं अपने जावास्क्रिप्ट कोड में MyApp का उपयोग कैसे करूं? – bschandramohan

+0

@bschandramohan आपको जेएस के माध्यम से कुछ देशी कोड (फोनगैप) का आह्वान करने वाली प्लगइन बनाने की आवश्यकता है, यह लिंक देखें: http://www.tricedesigns.com/2012/03/01/pushing-data-to-a-phonegap- वेब-व्यू/ –

2

आप PhoneGap Tutorial version 1.0.0 की ओर इशारा करते रहे हैं। यह बहुत पुराना है और यह बहुत सारी जानकारी लेता है। उदाहरण के लिए, यदि आप version 2.1.0 of PhoneGap के लिए एक ही पृष्ठ को पढ़ते हैं तो आपको device.uuid Quick Example के लिए एक टिप्पणी दिखाई देगी, जहां कहा जाता है कि device.uuid आईईएमआई नंबर केवल टिज़ेन प्लेटफ़ॉर्म के मामले में लौटाता है। आपके द्वारा उल्लेखित एंड्रॉइड समेत अन्य सभी प्लेटफ़ॉर्म, कुछ और लौटाते हैं।

आप शुद्ध एचटीएमएल/जावास्क्रिप्ट (फोनगैप बिल्ड के माध्यम से संकलित आवेदन) में डिवाइस का आईएमईआई नहीं प्राप्त कर सकते हैं। इसे पढ़ने के लिए, आपको केवल एंड्रॉइड प्लेटफ़ॉर्म के लिए स्थानीय रूप से निर्माण करना होगा और कुछ मूल प्लगइन शामिल करना होगा जो आपके लिए काम करेंगे - उदाहरण के लिए this one जैसे कुछ।

0

आप फोनगैप से "डिवाइस" ऑब्जेक्ट का उपयोग कर सकते हैं। चूंकि "डिवाइस" विंडो ऑब्जेक्ट को सौंपा गया है, यह वैश्विक क्षेत्र में परोक्ष है, तो आप आसानी से अपने onDeviceReady समारोह जैसे में यह कॉल कर सकते हैं:

var deviceID = device.uuid 

कृपया ध्यान दें कि Android पर यह रिटर्न एक यादृच्छिक 64 कि एक स्ट्रिंग के रूप में बिट पूर्णांक। पूर्णांक डिवाइस के पहले बूट पर उत्पन्न होता है। ब्लैकबेरी पर यह डिवाइस का पिन नंबर देता है। यह एक स्ट्रिंग के रूप में एक नौ अंकों का अद्वितीय पूर्णांक है और आईफोन पर यह कई हार्डवेयर पहचानों से बनाए गए हैश मानों की एक स्ट्रिंग देता है। यह हर डिवाइस के लिए अद्वितीय होने की गारंटी है और उपयोगकर्ता खाते से बंधे नहीं जा सकते हैं।

पूर्ण उदाहरण देखें here

4

आप IMEI नंबर वापस जाने के लिए एक phonegap प्लगइन लिख सकते हैं। चूंकि फोनगैप एंड्रॉइड उपकरणों के लिए आईमेई नहीं लौटाता है, यह एक यादृच्छिक 64-बिट संख्या देता है।

फोनगैप एप्लिकेशन में असली आईएमईआई नंबर प्राप्त करने के लिए यहां एक पूर्ण प्लगइन है (कृपया ध्यान दें कि यह प्लगइन "प्लगमेबल" नहीं है, लेकिन अगर निर्देशों का पालन करें तो यह काम करेगा। मैंने फोनगैप 2.9 पर परीक्षण किया है। मैं योजना बना रहा हूं फोनगैप 3.0 के लिए कुछ डिवाइस जानकारी के साथ एक असली "प्लगमेबल" प्लगइन लिखना)।

यहाँ (DeviceInfo.java) उस के लिए जावा वर्ग CordovaPlugin तक फैली हुई है:

import org.apache.cordova.api.CallbackContext; 
import org.apache.cordova.api.CordovaPlugin; 
import org.json.JSONArray; 

import android.content.Context; 
import android.telephony.TelephonyManager; 
import android.util.Log; 

public class DeviceInfo extends CordovaPlugin { 

    public DeviceInfo(){ 
    } 

    public String DeviceImeiNumber(){ 
     TelephonyManager tManager = (TelephonyManager)cordova.getActivity().getSystemService(Context.TELEPHONY_SERVICE);    
     return tManager.getDeviceId(); 
    } 

    @Override 
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) { 
     if (action.equals("imeiNumber")) { 
      callbackContext.success(this.DeviceImeiNumber()); 
      return true; 
     } 
     else { 
      return false; 
     } 
    } 
} 

और फिर आप एक js वस्तु की जरूरत है ताकि आप (deviceinfo.js दूसरे पक्ष पर अपने प्लगइन का उपयोग कर सकते):

(function(cordova) { 

    function DeviceInfo() {} 

    DeviceInfo.prototype.imeiNumber = function(win, fail) { 
     return cordova.exec(
       function (args) { if(win !== undefined) { win(args); } }, 
       function (args) { if(fail !== undefined) { fail(args); } }, 
       "DeviceInfo", "imeiNumber", []); 
    }; 

    if(!window.plugins) { 
     window.plugins = {}; 
    } 

    if (!window.plugins.DeviceInfo) { 
     window.plugins.DeviceInfo = new DeviceInfo(); 
    } 

})(window.cordova); 

इस तरह अपनी परियोजना के अंदर रेस/xml/config.xml फ़ाइल पर अपने प्लगइन जोड़ें:

<plugins> 
    <plugin name="DeviceInfo" value="com.XXX.XXXXX.DeviceInfo"/> 
</plugins> 

और अपने AndroidManifest.xml अंदर READ_PHONE_STATE अनुमति जोड़ें:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

यह आप आप अपने पेज में फ़ाइल deviceinfo.js जोड़ने की जरूरत है के बाद, और deviceready अपने इस तरह प्लगइन आप उपयोग कर सकते हैं के बाद:

plugins.DeviceInfo.imeiNumber(function(imei){ 
    console.log("imei "+ imei);     
}); 
+0

पूरी तरह से काम करता है, धन्यवाद !! – Udo

+0

@UDcreate, मुझे मदद करने में खुशी है! – lao

0

आप getUuid समारोह में प्लेटफार्मों/एंड्रॉयड परिभाषित बदल सकते हैं/src/org/अपाचे/कॉर्डोबा/डिवाइस इस तरह से/Device.java

public String getUuid() { 
    //String uuid = Settings.Secure.getString(this.cordova.getActivity().getContentResolver(), android.provider.Settings.Secure.ANDROID_ID); 
    TelephonyManager tManager = (TelephonyManager)this.cordova.getActivity().getSystemService(Context.TELEPHONY_SERVICE); 
    String uuid = tManager.getDeviceId(); 
    return uuid; 
} 

बस पहली पंक्ति पर टिप्पणी करें और दो नए जोड़ें।

तुम भी जोड़ने के लिए

import android.content.Context; 
import android.telephony.TelephonyManager; 
0

मैं एक प्लगइन कॉर्डोबा (केवल Android उपकरणों के लिए) के लिए cordova-plugin-imeigetter बुलाया द्वारा बनाए गए करता है कि आप क्या चाहते हैं। मुझे उम्मीद है इससे आपको मदद मिली होगी।


स्थापना:

cordova plugin add https://github.com/tomloprod/cordova-plugin-imeigetter.git 

उपयोग:

इस प्लगइन का निर्यात करता है एक विधि के साथ एक वस्तु get कहा जाता है:

window.plugins.imeiGetter.get(function(imei){ 
    console.log(imei); 
}); 

GitHub:https://github.com/tomloprod/cordova-plugin-imeigetter

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