3

電話を起動するたびに、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();
        }
4

0 に答える 0