09:00 ~ 10:00
: 오늘 계획 세우기10:00 ~ 11:00
: 팀 프로젝트11:00 ~ 12:00
: 후발대 강의 5주차13:00 ~ 18:00
: 팀 프로젝트19:00 ~ 20:30
: TIL 작성하기 & 노션 정리하기20:30 ~ 21:00
: 마무리 회고 진행안드로이드 스튜디오 Java Version 1.8에서 11 로 수정
class MainActivity : AppCompatActivity() {
lateinit var binding: ActivityMainBinding
lateinit var requestLauncher: ActivityResultLauncher<Intent>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
// 퍼미션 허용했는지 확인
val status = ContextCompat.checkSelfPermission(this, "android.permission.READ_CONTACTS")
if (status == PackageManager.PERMISSION_GRANTED) {
Log.d("test", "permission granted")
} else {
// 퍼미션 요청 다이얼로그 표시
ActivityCompat.requestPermissions(this, arrayOf<String>("android.permission.READ_CONTACTS"), 100)
Log.d("test", "permission denied")
}
// ActivityResultLauncher 초기화, 결과 콜백 정의
requestLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
if (it.resultCode == RESULT_OK) {
Log.d("test", "Uri : ${it.data!!.data!!}")
val cursor = contentResolver.query(
it.data!!.data!!,
arrayOf<String>(
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.Contacts.PHOTO_URI,
ContactsContract.Contacts._ID,
),
null,
null,
null
)
Log.d("test", "cursor size : ${cursor?.count}")
if (cursor!!.moveToFirst()) {
val name = cursor.getString(0)
val phone = cursor.getString(1)
val photoURI = cursor.getString(2)
val id = cursor.getString(3)
binding.text.text = "$name"
}
}
}
binding.mainBtn.setOnClickListener {
// 주소록 앱 연동
val intent = Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI)
requestLauncher.launch(intent)
}
}
// 다이얼로그에서 퍼미션 허용했는지 확인
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.d("test", "permission granted")
} else {
Log.d("test", "permission denied")
}
}
}
팀 프로젝트 : 연락처 앱 만들기
https://github.com/Android-Team-119/Android_Team119_Project
Bundle
을 이용하여 데이터를 전달해 보세요.팀프로젝트