2011-03-22 21 views

cevap

8

Bir olayın farkında değilim, ancak SIM takılı olduğunda telefon kapanacak ve açılacak, böylece SIM seri numarasını tercihlere kaydedecek bir servis oluşturabilir ve sonra saklanan seri numarasını karşılaştırabilirsiniz. Servis başladığında mevcut SIM'de bununla. Access the SIM Card with an Android Application?

+5

Bazı modellerde telefon çevirmeden SIM kartı çıkarmak mümkün olabilir. – pixel

+2

Evet, Galaxy Nexus'ta, çalışırken SIM kartı çıkartabilirsiniz. Çalışırken yeni bir SIM takarsanız, güç döngüsüne kadar etki göstermez. Telefon yöneticisinden gelen numaranın alınması boş/boş dizgeye döner. –

7

Kaydet cureent SIM kimliği ve her telefon yeni SIM kimlik önce kaydedilmiş aynı olup olmadığını kontrol AirplaneModeOFF devlet AirplaneModeON gider:

İşte SIM ayrıntıları erişen ayrıntılarını bu.

Kontrol this answer Uçak Modu algılamak nasıl görmek.

Umarım bu soruya cevap verir.

13

Temelde, bu sorunun cevabı "How to monitor SIM state change" de sorunuzun doğru cevaptır.

Yani yeni bir sınıf

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. 
    } 
} 

oluşturmak ve orada Android'de herhangi sürümüne ne de herhangi bir üreticinin cihazlarda çalışır hiçbir garanti zamanki gibi

<!-- 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> 

içerecek şekilde AndroidManifest.xml uyarlar.

3

Sen eylem android.intent.action.SIM_STATE_CHANGED almak için BroadcastReceiver kayıt yaptırmak zorundadır.

Bu eylem com.android.internal.telephony.TelephonyIntents.java dahildir ve Android'in Belgelerde bulunamaz. Bunu aldığınızda (örneğin, sim/içeri takılan sim kartı), ss anahtarıyla Sim State ek bilgisine ulaşın.

İlgili konular