마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

가계부앱을 만들려하는데요. sms를 자동인식해서 입력받고싶은데 어떻게 해야할까요?

0 추천
졸업작품으로 가계부 앱을 만들려고 합니다.

그런데 가계부 어플보면 카드사용시에 문자로 00카드에서 얼마썼다고 메시지가 오잖아요. 그 메시지를 자동으로 인식해서 입력받고싶은데 어떻게 해야할지 모르겠습니다ㅠㅠ

그런 기능을 추가하려면 어떤방식으로 인식이 되는건가요? 그 기능을 구현하고싶은데 잘 안나오네요ㅠㅠ
공팔공일 (120 포인트) 님이 2016년 9월 16일 질문
권한 설정을 하시고 sms가 오는 것을 캡쳐하시면 됩니다. 개발자 가이드 보시면 나와요.
답변감사합니다. 죄송하지만 캡쳐한다는 의미가 어떤의미인지 알수 있을까요? 개발자가이드는 어디에서 봐야하나요?ㅠㅠ 귀찮게 해드려 죄송합니다..많이 부족한지라..
아랫분처럼  db에서 읽어올 수도 있습니다. 이 경우는 어느 시점에 db를 읽어올 것인가가 중요한  포인트가 됩니다. 그래서 실시간으로 들어오는 sms를 모니터링 하려면 안드로이드 시스템에 sms가 오면 통지를 해달라고 등록을 하셔야 합니다. 이게 브로드캐스트리시버를 사용하는이유입니다. 코드는 링크를 참조하세요. http://stackoverflow.com/questions/7089313/android-listen-for-incoming-sms-messages
공식 안드로이드 개발자 레퍼런스 정독부터 추천드립니다. 개발자가이드는 왜 모르시죠?

1개의 답변

0 추천

ContentResolver contentResolver = getContentResolver();
String selection = "_id = "+id;
Uri uri = Uri.parse("content://sms");
Cursor cursor = contentResolver.query(uri, null, selection, null, null);
String phone = cursor.getString(cursor.getColumnIndex("address"));
int type = cursor.getInt(cursor.getColumnIndex("type"));// 2 = sent, etc.
String date = cursor.getString(cursor.getColumnIndex("date"));
String body = cursor.getString(cursor.getColumnIndex("body"));

 

이런식으로 db에서 추출하면 되겠네요. 자세한 내용은 

http://stackoverflow.com/questions/3012287/how-to-read-mms-data-in-android

참고 바랍니다.

guts (140 포인트) 님이 2016년 9월 17일 답변
...