반응형
Activity Action
- 안드로이드에서 제공되는 기본 애플리케이션의 Activity를 내가 만든 앱에서 사용 가능
- 공개되어 있는 이름으로 제공되며 실행 가능
- 다른 앱이 가지고 있는 화면을 띄우는 것! 내 앱 내부에서 API를 사용해 구현하는 것과는 다름
- 캡스톤 프로젝트인 카메라 앱 개발시 안드로이드 내부 카메라 앱을 사용하려면 중요한 파트!!
- 다음 예제에서는 구글 Map 에서 제공하는 지도 화면 액티비티를 사용
- 미리 정의되어 있는 Intent.ACTION_VIEW 라는 이름으로 실행하면 동일한 이름의 앱 목록이 뜨기 때문에 선택
- 한 번에 구글 지도를 띄우기 -> 위도와 경도 데이터를 uri 로 세팅
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater) // 뷰바인딩 객체
val view = binding.root //뷰바인딩을 통해 레이아웃과 뷰가 결합 -> .root 를 통해 View 객체만를 뽑아내는(?)
setContentView(view)
binding.button.setOnClickListener {
/* 구글map 애플리케이션의 지도 화면(액티비티) 사용 */
// 세팅하는 데이터에 따라 어플이 자동으로 선택됨
val uri = Uri.parse("geo:37.243243,131.861601") //위도와 경도 세팅 // skima geo 이므로 구글맵 실행
val intent = Intent(Intent.ACTION_VIEW,uri) // 해당 이름으로 생성된 여러 앱의 액티비티 목록 나옴 -> 선택
startActivity(intent)
}
}
- 다음 예제는 단말기 내부의 웹브라우저를 실행
- 웹브라우저 주소를 uri 데이터로 세팅
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater) // 뷰바인딩 객체
val view = binding.root //뷰바인딩을 통해 레이아웃과 뷰가 결합 -> .root 를 통해 View 객체만를 뽑아내는(?)
setContentView(view)
binding.button2.setOnClickListener {
val uri = Uri.parse("https://www.notion.so/2023-1-ae02d4dec3924b828b5ad0d31e4a0232")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
}
}
- 다음 예제는 전화 걸기
- 전화번호("tel:번호")를 uri 데이터로 세팅
- 전화 걸기 세팅 -> Intent.ACTION_DIAL, 실제 전화 걸기 -> Intent.ACTION_CALL
- 실제 전화를 걸려면 권한 설정 해줘야 하고, 개인정보/요금 문제가 있기 때문에 사용자에게 확인도 받아야 함
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
val permission_list = arrayOf(android.Manifest.permission.CALL_PHONE)
// Activity가 생성될 때 자동으로 호출
// 화면 전환(가로,세로) 발생시 자동으로 호출되면서 새로운 화면 구현
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater) // 뷰바인딩 객체
val view = binding.root //뷰바인딩을 통해 레이아웃과 뷰가 결합 -> .root 를 통해 View 객체만를 뽑아내는(?)
setContentView(view)
requestPermissions(permission_list, 0) //권한 확인
binding.button3.setOnClickListener {
val uri = Uri.parse("tel:01083287690")
//val intent = Intent(Intent.ACTION_DIAL, uri) //전화걸기 직전 셋팅
val intent = Intent(Intent.ACTION_CALL,uri) //실제로 전화 걸기 -> 권한 등록 필요, 확인 받아야 (요금, 개인정보 문제)
startActivity(intent)
}
}
}
🤩 드디오!! Activity 공부완!!
반응형
'Android' 카테고리의 다른 글
[안드로이드/메시징] SnackBar (0) | 2023.04.04 |
---|---|
[안드로이드/메시징] Toast (0) | 2023.03.31 |
[안드로이드/Build Error] Appcompat 버전 문제 (0) | 2023.03.25 |
[안드로이드/Activity] 다른 애플리케이션의 액티비티 실행 (0) | 2023.03.25 |
[안드로이드/Activity] 객체 전달하기 (0) | 2023.03.18 |