2011-03-22 21 views

उत्तर

8

मुझे किसी घटना से अवगत नहीं है, लेकिन जब फोन सिम हो जाता है, तब फोन बंद हो जाएगा, इसलिए आप एक सेवा बना सकते हैं जो सिम सीरियल नंबर को वरीयताओं में संग्रहीत करता है, और उसके बाद संग्रहीत सीरियल नंबर की तुलना करें जब सेवा शुरू होती है तो वर्तमान सिम में। Access the SIM Card with an Android Application?

+5

कुछ मॉडलों में फोन को घुमाने के बिना सिम कार्ड निकालना संभव हो सकता है। – pixel

+2

हां, गैलेक्सी नेक्सस पर, आप चलते समय सिम कार्ड निकाल सकते हैं। यदि आप चलते समय एक नया सिम डालते हैं, तो यह तब तक प्रभावित नहीं होगा जब तक आप पावर चक्र नहीं लेते। टेलीफ़ोनी प्रबंधक से नंबर प्राप्त करने से शून्य/खाली स्ट्रिंग वापस आ जाएगी। –

7

सहेजें cureent सिम आईडी और हर फोन AirplaneModeOFF जाँच करने के लिए करता है, तो नया सिम आईडी से पहले बचाया वैसा ही है जैसा राज्य AirplaneModeON से चला जाता है:

यहाँ सिम विवरण तक पहुँचने का ब्यौरा है।

एयरप्लेन मोड का पता लगाने के तरीके को देखने के लिए this answer देखें।

मुझे आशा है कि यह आपको उत्तर देगा।

13

असल में, इस प्रश्न का उत्तर "How to monitor SIM state change" आपके प्रश्न का सही उत्तर भी है।

तो तुम एक नया वर्ग

package a.b.c; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.util.Log; 

public class SimChangedReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(final Context context, final Intent intent) { 

     Log.d("SimChangedReceiver", "--> SIM state changed <--"); 

     // Most likely, checking if the SIM changed could be limited to 
     // events where the intent's extras contains a key "ss" with value "LOADED". 
     // But it is more secure to just always check if there was a change. 
    } 
} 

बना सकते हैं और अपने AndroidManifest.xml अनुकूलन कोई गारंटी यह किसी भी संस्करण पर और न ही किसी भी निर्माता के उपकरणों पर काम करता है वहाँ Android पर

<!-- put this where your other permissions are: --> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<!-- and --> 
<application 
    android:name="a.b.c...." 
    ... > 
    <!-- put this somewhere into your application section: --> 
    <receiver android:name="a.b.c.SimChangedReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.SIM_STATE_CHANGED"/> 
     </intent-filter> 
    </receiver> 
</application> 

हमेशा की तरह शामिल करने के लिए।

3

कार्रवाई android.intent.action.SIM_STATE_CHANGED प्राप्त करने के लिए आपको BroadcastReceiver पंजीकृत करना होगा।

यह क्रिया com.android.internal.telephony.TelephonyIntents.java में शामिल है और एंड्रॉइड के दस्तावेज़ीकरण में नहीं मिल सकती है। जब आपको यह प्राप्त होता है (उदा। सिम कार्ड प्लग इन/आउट), कुंजी ss के साथ सिम स्टेट अतिरिक्त प्राप्त करें।

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