0
我參考LogCat時發生錯誤。我已經存儲了存儲卡(第1張),並與當前SIM卡(第2張)進行比較,如果SIM卡序列不同,logcat會打印出SIM卡已更改。但是當我運行它時,我的服務出現問題。下面是我的代碼顯示Android Sim更改檢測,Log.e中的錯誤。
Tag SimSerial:: 8944110065486249080
Tag Current Sim Serial:: 8944110065486249080
Tag Sim Status Sim no changed !!!
Tag SimSerial:: 8944110065486249080
Tag Current Sim Serial:: 8944110065486249080
Tag Sim Status Sim changed !!!
第一部分
logcat的是正確的,但第二部分SIM狀態不應該「辛不改變」的可能。 有誰知道錯誤在哪裏?
BootCompleteReceiver
public class BootCompleteReceiver extends BroadcastReceiver {
Context context;
SharedPreferences settings;
public static final String PREFS_NAME = "MyPrefsFile";
@Override
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, MyService.class);
context.startService(service);
}
}
爲MyService
public class MyService extends Service {
String storedSimSerial;
String currentSimSerial;
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
TelephonyManager telephoneMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
storedSimSerial = telephoneMgr.getSimSerialNumber();
Log.e("SimSerial::",storedSimSerial);
TelephonyManager tmMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
currentSimSerial = tmMgr.getSimSerialNumber();
Log.e("Current Sim Serial::",currentSimSerial);
if(currentSimSerial==storedSimSerial)
{
Log.e("Sim Status","Sim no changed !!!");
}
else
Log.e("Sim Status","Sim changed !!!");
return Service.START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service Destroy", Toast.LENGTH_LONG).show();
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}
謝謝。它解決了!不能相信這樣一個小小的錯誤浪費了我一小時才找到答案。 – BangBoat
@BangBoat沒問題:-) –