2013-03-11 2 views
2

android.i의 새로운 기능입니다. 안드로이드에서 응용 프로그램을 만들고 싶습니다. 전화를받지 못하면 그 번호로 SMS를 보내려고합니다. 어느 누구도 통화 기록에서 최근에 부재중이었던 통화를 식별하는 방법을 알려줄 수 있습니다.최근에 부재중 전화 번호에 액세스했습니다.

+0

여기 http://stackoverflow.com/questions/3785725/how-to-retrieve-missed-calls-on-android-sdk-2-2 코드를 확인하실 수 있습니다 – Syn3sthete

답변

1

첫째 통화 기록을 읽을 내용 Provider.and을 통해 해당 번호의 부재중 전화를받을 수있는 권한이 필요한 경우 열 이름 유형이 있습니다 CallLogs 보내기 쉽게 그 번호의 SMS를 보내십시오.

시도해보십시오.

public class MainActivity extends Activity { 

    Button FirstActivity; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     String[] strFields = {android.provider.CallLog.Calls.CACHED_NAME, android.provider.CallLog.Calls.NUMBER,android.provider.CallLog.Calls.DATE, android.provider.CallLog.Calls.TYPE 
     }; 
     String strOrder = android.provider.CallLog.Calls.DATE + " DESC"; 

     Cursor mCallCursor = getContentResolver().query(android.provider.CallLog.Calls.CONTENT_URI,strFields, null, null, strOrder); 

     if (mCallCursor.moveToFirst()) { 

      do { 

       boolean missed = mCallCursor.getInt(mCallCursor.getColumnIndex(CallLog.Calls.TYPE)) == CallLog.Calls.MISSED_TYPE; 

       if (missed) { 

        String name = mCallCursor.getString(mCallCursor 
          .getColumnIndex(CallLog.Calls.CACHED_NAME)); 

        String number = mCallCursor.getString(mCallCursor 
          .getColumnIndex(CallLog.Calls.NUMBER)); 

//     String time = DateFormat.getDateTimeInstance(DateFormat., DateFormat.LONG) 
//       .format(mCallCursor.getLong(mCallCursor 
//         .getColumnIndex(CallLog.Calls.DATE))); 
// 
//     Log.d("PhoneLog", "You have a missed call from " + name + " on " + number 
//       + " at " + time); 
       } 

      } while (mCallCursor.moveToNext()); 

     } 
     SmsManager smsManager = SmsManager.getDefault(); 
     smsManager.sendTextMessage("phoneNo", null, "sms message", null, null); 
    } 

} 
관련 문제