나는 안드로이드 용 SMS API를 사용하는 애플리케이션으로 작업 중이다. 수신 측은 7 비트 인코딩 SMS 만 지원하는 내장 된 유닛이며 전송중인 문자열은이 특정 알파벳의 기호로만 구성되어 있으므로 안드로이드가 7 비트로 인코딩하여 전송한다고 생각하게합니다. 하지만 그렇지 않습니다.안드로이드에서 SMS 메시지의 데이터 인코딩 정의하기
따라서 사용할 인코딩을 지정하는 방법을 찾고 있습니다. 내 코드가 오늘 어떻게 생겼는지 보려면 아래를 참조하십시오. gsm7BitPackedToString 메소드는 바이트 배열을 7 비트 문자열로 변환합니다. 즉, 문자열은 7 비트 호환 문자로만 구성되며 내부 Android API에서 복사됩니다. 내부 방법의 일종을 사용
- 하지만 사람 I've read about 아무도 더 이상 존재 것 같다 :
private static boolean sendMessage(String tel,byte[] message,int septets) { SmsManager sms = SmsManager.getDefault(); if (septets != -1) { String a = GsmAlphabet.gsm7BitPackedToString(message,0,septets); sms.sendTextMessage(tel, null, a, null, null); return true; } return false; }
가 나는 다음과 같은 솔루션을 고려했다.
- 데이터 메시지를 보내지 만받는 쪽에서도 지원하지 않는 추가 사용자 데이터 헤더가 필요합니다.
http://developer.android.com/reference/android/telephony/SmsMessage.html
가
createFromPdu()
방법SmsMessage
객체를 생성하고SmsManager
에 보내는 데 사용 :
어떤 도움 SmsMessage
클래스를 사용해보십시오
안녕하세요, GsmAlphabet을 어디에서 찾았습니까? USSD를 통해 SMS를 보내고 싶습니다. ussd 코드에서 보내는 문자열의 인코딩에 문제가 있습니다. 원한다면 ussd 메시지를 보내는 코드를 공유 할 수 있습니다. 고맙습니다. –
GsmAlphabet은 [android open source project] (http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=telephony/java/com/android)에서 가져온 것입니다. /internal/telephony/GsmAlphabet.java;h=57d73e3758f5de2d52abc8deca66fd797f3a19e2;hb=HEAD) –