Android 호출 시스템 전화 및 문자 메시지 기능
1. 전화를 걸 수 있는 권한을 manifast 파일에 추가합니다.
2、Uri를 사용합니다.parse(String a)에서 Uri를 만듭니다.
Uri uri = Uri.parse("tel:"+1008611);
3. 전화를 거는 의도를 만든다.
Intent intent = new Intent(Intent.ACTION_CALL, uri);
4, 부팅 시스템 전화 페이지.
startActivity(intent);
문자
방식1: 직접 문자 보내기
1. 문자 메시지를 보내는 권한을 manifast 파일에 추가합니다.
2,android를 획득합니다.telephony.SmsManager 객체(PS:android.telephony.gsm.SmsManager는 이미 폐기됨).
SmsManager smsManager = SmsManager.getDefault();
3. 문자 내용의 상수를 성명한다.
String content = "Hello World!";
4. 문자 내용을 블록으로 나누어 문자 한 통을 보내면 최대 70개의 중국어 문자를 발송할 수 있다. 이 값을 초과하면 시스템은 문자 내용을 여러 블록으로 나누어 발송한다.
ArrayList list = smsManager.divideMessage(content);
5. 조를 나누어 발송한다.
for (int i = 0; i < list.size(); i++) { smsManager.sendTextMessage("10086", null, list.get(i), null, null); }
방식2: 시스템의 문자 발송 인터페이스를 호출하여 번호를 입력해야 한다.
1. 의도 작성
Intent intentFinalMessage = new Intent(Intent.ACTION_VIEW);
2. 유형 설정
intentFinalMessage.setType("vnd.android-dir/mms-sms"); 3. 시스템 문자 인터페이스 열기
startActivity(intentFinalMessage);
방식3: 시스템의 문자 발송 인터페이스를 호출하여 번호를 입력할 필요가 없다.
1. Uri 만들기, 비헤이비어 및 번호 설정
Uri uri2 = Uri.parse("smsto:"+10086);
2. 의도를 만든다.
Intent intentMessage = new Intent(Intent.ACTION_VIEW,uri2); 3. 시스템 문자 인터페이스를 열면 번호는 이미 기입하고 발송할 것만 기입하면 됩니다.
startActivity(intentMessage);
3.
sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntentsentIntent, PendingIntent deliveryIntent)
매개 변수 설명:1. destinationAddress: 이 번호로 문자를 보냅니다.
2. scAddress: 이 번호로 문자를 보내면null일 때 본기로 보내는 것을 의미한다.
3. text: 문자 내용.
4. sentIntent: 문자 메시지가 성공하거나 실패한 후에 방송을 보냅니다.
5. deliveryIntent: 상대방이 문자를 받은 후에 방송을 보낸다.
4. 방송의 문자 발송
1. 방송 등록
자신이 메시지를 보낸 브로드캐스트를 등록하려면 다음과 같이 하십시오.
SEND_SMS_ACTION = "3"; registerReceiver(new BroadcastReceiver() {@Override public void on Receive(Context context, Intent intent) {//결과 코드에 따라 성공 if(Activity.RESULT OK = getResultCode() 발송 여부 판단{Toast.makeText(MainActivity.this, "발송 성공", Toast.LENGTH SHORT).show();}else {Toast.makeText(MainActivity.this, 발송 실패, Toast.LENGTH SHORT).show(). } } }, new IntentFilter(SEND_SMS_ACTION));
상대방이 문자를 받은 방송을 등록하는 방법:
BACK_SMS_ACTION = "4"; register Receiver(new Broadcast Receiver() {@Override public void on Receive(Context context, Intent intent) {//이 방송을 받으면 문자 수신에 성공했다는 의미로 Toast.makeText(Main Activity.this, "상대방이 문자 수신", Toast.LENGTH_SHORT).show(); } }, new IntentFilter(BACK_SMS_ACTION));
2. 문자 발송, 발송 상황 감청, 상대방의 수용 상황 감청, 문자 발송이 성공하거나 실패할 경우
PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(SEND SMS ACTION), 0)에서 브로드캐스트가 전송됩니다.
하면, 만약, 만약...
PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(BACK_SMS_ACTION), 0));라디오를 보내드리도록 하겠습니다.
for (int i = 0; i < list.size(); i++) { smsManager.sendTextMessage("10086", null, list.get(i), PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(SEND_SMS_ACTION), 0), PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(BACK_SMS_ACTION), 0)); }
5. smsManager로 다른 형식의 문자 보내기
1、
sendDataMessage(String destinationAddress, String scAddress, short destinationPort, byte[] data, PendingIntent sentIntent, PendingIntent
deliveryIntent)
, short destinationPort, , 。
2、sendMultipartTextMessage(String destinationAddress, String scAddress, ArrayList parts,ArrayList sentIntents, ArrayList deliveryIntents)
。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.