2022년
Activity Action
박상윤
2021. 10. 21. 20:17
- 안드로이드에서 제공되는 기본 애플리케이션 중 다른 애플리케이션이 사용할 수 있도록 제공되는 Activity들이 있다.
- 이들은 모두 공개되어 있는 이름이 제공되며 이를 통해 실행할 수 있다.
package com.sypark.activityaction
import android.content.Intent
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener{
var uri = Uri.parse("geo:37.243243,131.861601")
val intent = Intent(Intent.ACTION_VIEW,uri)
startActivity(intent)
}
}
}
ACTION_VIEW -> "무언가를 보여준다" 라는 의미를 가진다.
구글지도 실행하기 버튼 클릭후
package com.sypark.activityaction
import android.content.Intent
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener{
val uri = Uri.parse("geo:37.243243,131.861601")
val intent = Intent(Intent.ACTION_VIEW,uri)
startActivity(intent)
}
button2.setOnClickListener {
val uri = Uri.parse("https://developer.android.com")
val intent = Intent(Intent.ACTION_VIEW,uri)
startActivity(intent)
}
button3.setOnClickListener {
val uri = Uri.parse("tel:12341234")
val intent = Intent(Intent.ACTION_DIAL,uri)
startActivity(intent)
}
button4.setOnClickListener{
val uri = Uri.parse("tel:12341234")
val intent = Intent(Intent.ACTION_CALL,uri)
startActivity(intent)
}
}
}
구글지도 말고도 다른 기능을 추가
package com.sypark.activityaction
import android.content.Intent
import android.net.Uri
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener{
val uri = Uri.parse("geo:37.243243,131.861601")
val intent = Intent(Intent.ACTION_VIEW,uri)
startActivity(intent)
}
button2.setOnClickListener {
val uri = Uri.parse("https://developer.android.com")
val intent = Intent(Intent.ACTION_VIEW,uri)
startActivity(intent)
}
button3.setOnClickListener {
val uri = Uri.parse("tel:12341234")
val intent = Intent(Intent.ACTION_DIAL,uri)
startActivity(intent)
}
button4.setOnClickListener{
val uri = Uri.parse("tel:12341234")
val intent = Intent(Intent.ACTION_CALL,uri)
startActivity(intent)
}
}
}
주의할점
자동으로 전화를 거는 기능은 반드시 권한이 필요하다
권한을 부여
<uses-permission android:name="android.permission.CALL_PHONE"/>
권한 확인
val permission_list = arrayOf(
Manifest.permission.CALL_PHONE
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
requestPermissions(permission_list,0)
}
전화가 실제로 걸린다.
정리
- 안드로이드에 내장되어 있는 애플리케이션들은 다른 애플리케이션이 사용할 수 있도록 Activity가 제공된다.