電話を起動するたびに、SIM カードが電話に存在するかどうかを確認したいと思います。SIM カードが挿入されていない場合、アプリケーションはすべての SMS メッセージを削除し、すべてのアカウント資格情報を削除し、すべての電話連絡先を削除し、外部ストレージのすべてのデータを自動的に消去します。しかし、電話を起動すると、アプリケーションが強制的に閉じられます...設定したトーストも表示されません... SIMカードがないことを確認するにはどうすればよいですか? simSerial.equals("") と simSerial.equals(null) を試しましたが、失敗しました...これについて誰か助けが必要です...ありがとう
if (simSerial.equals(null)){
Toast.makeText(testContext.getApplicationContext(), "No SIM card detected!!!", Toast.LENGTH_LONG).show();
Log.d("Message", "No SIM card");
ContentResolver cr = context.getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while(cursor.moveToNext()){
String lookupKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
cr.delete(uri, null, null);
}
accManager = AccountManager.get(context);
Account [] acc = accManager.getAccounts();
if (acc.length > 0){
for (int j=0; j<acc.length; j++){
Account accountToRemove = acc[j];
accManager.removeAccount(accountToRemove, null, null);
}
}
ContentResolver cr1 = context.getContentResolver();
Cursor cursor1 = cr1.query(Uri.parse("content://sms/"), null, null, null,null);
try {
while (cursor1.moveToNext()) {
int id = cursor1.getInt(0);
cr1.delete(Uri.parse("content://sms/" + id), null, null);
}
} finally {
cursor.close();
}
//Wipe data on SD card
wipeSdCard();
}