어플을 만들기 시작한지 일주일 정도되었습니다.
지금 간단하게 카드 사용 확인 문자를 가지고 얼마나 썼는지 알려주는 어플을 만들려고 하는데
문자를 읽어 들이는 부분을 어떻게 해야할지 모르겠더라구요.
검색을 해서 찾아본 결과,
ContentResolver cr = getContentResolver();
Uri uri = Uri.prase("content://mms-sms/inbox");
Cursor cursor = cr.query(uri,null,null,null,null);
여기까지 이해를 하겠는데,
1.
문자 메세지가 저장되있는 형태를 생각해보면
예를들어,
1588-1577
11월 27일 오전1:59
[체크승인]\n
15,570원\n
xx카드(2*6*)\n
xxx님\n
08/31 01:59\n
훼미리마트 xx점\n
이런식으로 써있다면은
address는 15881577 일꺼고
date 는 083101:59
일껀데
body는 그럼 나머지 전체를 다 받는건지, 다받는거라면 개행을 하는 부분도 포함시켜 들어가는 거지 모르겠구요
2.
또 많은 문자가 있을텐데 필터링은 어떤 방식으로 해야 할지 모르겠어요
개인적인 생각으로는 body에 첫번째줄이 [체크승인] 이라고 되어있는 것들만 비교해서 확인할수 있으면 그런식으로 할려고 하는데,
이렇게 사용할수 있을까요 ?
3.
저런식의 문자를 여러개 저장하려고 한다면 어떤식으로 저장을 해야되는지 알려주시면 감사하겠습니다.
먼저, 개발을 시작하신 선배님들의 조언부탁드립니다 ㅠ
답글 감사합니다.
그 메쏘드가 string.split() 맞나요?
그렇다면
String test = "[체크승인]\n7,070원\nNH카드(0*0*)\nXXX님\n09/04 22:00\n 패밀리마트 XX점" 이라는 문자열을
String[] test2 = test.split("\n",""); 로 나눈 다면
test2[0] = [체크승인]
test2[1] = 7,070원
test2[2] = NH카드(0*0*)
test2[3] = XXX님
test2[4] = 09/04 22:00
test2[5] = 패밀리마트 XX점
이런 형식으로 저장이 된다는 말씀이신가요 ?




제폰의 경우 content://sms/inbox와 content://sms/에 둘다 읽어들이더리구요 어째든
읽는게 확인 되겼으면 배열 12번째가 바디부분입니다
(0부터기작해서 12 다시말해 13번째 값)
문자의 내용의 변수에 찾는 문자가 있는지 비교하면 되는데요
api에 string쪽 찾아보시면 배열로 문자내용를 나눠주는게 있습니다 예를든다면
String test = "28384/38739";이라고 할때
String test2 [] =test.???("/"); //해당문자를 읽어나눠주는 함수 ???가함수라는건 아니요 함수명기억이 안나서 이리 입력합니다.
이렇게 처리가 되면
test2[0]에는 28384라는 값이 들어가고
test2[1]에는 38639라는 값이 들어가니
걸리내려는 문자가 카드내역 : 얼마
이라고하면 test.???("카드내용 : ");으로 했다면
카드금액은 test[1]이고에 저장되겠죠
이렇식으로 처리하면 될것으로 보입니다