Android 호출 시스템 전화 및 문자 메시지 기능

4176 단어
전화하다
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) 
  。

좋은 웹페이지 즐겨찾기