2017-10-25 7 views
-2

"Amount"라는 키워드가 포함 된 사용자 SMS를 읽고 데이터베이스에 해당 사용자의 번호를 저장해야하는 앱이 있습니다. 어떻게이 일을 성취 할 수 있습니까?Android 앱을 사용하여 "amount"라는 키워드가있는 사용자 모바일의 모든 SMS 메시지를 읽고 데이터베이스에 저장하려면 어떻게해야합니까?

+1

당신은 무엇을하려고하지? 어떤 문제가 발생 했습니까? – CommonsWare

+0

SMS를 읽을 수 있지만 가져올 수는 없습니다. 그것을 알아낼 수 없습니다. –

답변

0

는 이미 아래의 코드

public void getAllSms() 
{ 
    try 
    { 
     Calendar calendar; 
     long milliSeconds; 
     String finalDateString; 
     int month; 
     SmsMessage smsMessage; 
     list = new ArrayList<>(); 
     list2 = new ArrayList(); 
     DateFormat formatter, formatter3; 
     Uri uri = Uri.parse("content://sms/inbox"); 
     if (ContextCompat.checkSelfPermission(getBaseContext(), "android.permission.READ_SMS") == PackageManager.PERMISSION_GRANTED) { 
      Cursor cursor = getContentResolver().query(uri, null, null, null, null); 
      if (cursor != null) { 
       if (cursor.moveToFirst()) { 
        for (int idx = 0; idx < cursor.getCount() && idx < 100; idx++) { 

         milliSeconds = cursor.getLong(cursor.getColumnIndex("date")); 
         formatter = new SimpleDateFormat("yyyy"); 
         formatter3 = new SimpleDateFormat("dd hh:mm:ss"); 
         calendar = Calendar.getInstance(); 
         month = calendar.getTime().getMonth() + 1; 
         calendar.setTimeInMillis(milliSeconds); 
         finalDateString = formatter.format(calendar.getTime()) + "-" + String.format("%02d",month) + "-" + formatter3.format(calendar.getTime()); 

         if (idx < 50) { 
          smsMessage = new SmsMessage(); 
          smsMessage.setAddress(cursor.getString(cursor.getColumnIndex("address"))); 
          smsMessage.setMessage(cursor.getString(cursor.getColumnIndexOrThrow(Telephony.Sms.BODY))); 
          smsMessage.setCreatedTime(finalDateString); 

          list.add(smsMessage); 
         } 
         cursor.moveToNext(); 
        } 

       } else { 
        cursor.close(); 
       } 
      } 
     } 
    } 
    catch (Exception e) 
    { 
     Log.d("error","cathc"); 
    } 
} 

참고 사용자 이동 사용에서 모든 SMS를 읽고 개발 : 당신은 커서가 null의 확인이 필요하거나

+0

SmsMessage 당신이 그것을 삭제할 수 있지만 SMS 콘텐츠를 얻기위한 매개 변수를 사용하여 Json 응답 클래스입니다 –