2010-12-10 73 views

回答

3

編寫一個啓動廣播接收器。每次設備啓動時都會運行。喜歡的東西下面的代碼

<receiver android:name=".StartupReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      <category android:name="android.intent.category.HOME" /> 
     </intent-filter> 
    </receiver> 

:以下意圖添加到您的清單

public class StartupReceiver extends BroadcastReceiver{ 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Intent intent = new Intent(...); 
     context.startActivity(intent); 
    } 
} 
0

dhaag23的回答涵蓋了如何建立一個啓動接收器。然而,它並沒有提到的是,應用程序必須有啓動完成權限,或者任何關於您的SIM卡要求

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

對於檢查SIM卡的價值,我已經設置了存儲在該設備的電話號碼應用設置。請注意,這可以由用戶在應用程序設置中清除,並且您必須小心處理第一次初始化的情況。如果您檢測到當前電話號碼與設置中以前存儲的值不匹配,則可以斷定它是新的SIM卡。

下面是我用它來獲得當前手機#方法:

用於獲取SIM串行
public static String getPhoneNumber(Context context) { 
    TelephonyManager phoneManager = (TelephonyManager) 
      context.getSystemService(Context.TELEPHONY_SERVICE); 
    String phoneNumber = phoneManager.getLine1Number(); 
    return phoneNumber; 
} 

方法。

public static String getSimSerialNumber(Context context) { 
    TelephonyManager phoneManager = (TelephonyManager) 
      context.getSystemService(Context.TELEPHONY_SERVICE); 
    String phoneNumber = phoneManager.getSimSerialNumber(); 
    return phoneNumber; 
} 

如果有一種方法可以明確檢查新/缺失SIM卡的存在,我不確定它是什麼。我上面提到的獲取電話號碼的方法顯然不適用於所有運營商。此外,獲取SIM卡序列號僅適用於SIM卡手機。