Deperecated/Android_강의

안드로이드 - Activity Action

누알라리 2020. 2. 19. 02:02
1. Activity Action

- 안드로이드에서 제공되는 기본 애플리케이션 중 다른 애플리케이션이 사용할 수 있도록 Activity가 제공되는 것들이 있다.

- 이들은 모두 공개되어 있는 이름이 제공되며 이를 이용해 실행할 수 있다.

 

- Intent의 액션을 설정해 사용할 수 있으며, 뒤에 전달해주는 uri에 따라 실행시키는것이 다르다.

var intent = Intent(Intent.ACTION_VIEW, uri)

var intent = Intent(Intent.ACTION_DIAL, uri)

var intent = Intent(Intent.ACTION_CALL, uri)startActivity(intent)

 

2. 지도 띄우기

- ACTION_VIEW을 이용해 위도를 전달해 지도를 띄울 수 있다.

        // 1. 지도 띄우기
        button.setOnClickListener { view ->

            // 1.지도를 띄우기 위해 위도 세팅
            var uri = Uri.parse("geo:37.243243,13861601")

            // 2. 액션뷰
            //  뭔가를 보여주는 목적으로 쓰임.
            //  뒤에 들어가는것이 무엇인가(Ex. 위도=지도, url=홈페이지 등)에 따라 뜨는게 다름.
            var intent = Intent(Intent.ACTION_VIEW, uri)
            startActivity(intent)
        }

 

3. 홈페이지 띄우기

- ACTION_VIEW을 이용해 URL을 전달해 지도를 띄울 수 있다.

        // 2. 홈페이지 띄우기
        button2.setOnClickListener { view ->

            var uri = Uri.parse("http://www.naver.com")

            var intent = Intent(Intent.ACTION_VIEW, uri)
            startActivity(intent)
        }

 

4. 번호 다이얼 띄우기

- ACTION_DIAL을 이용해 번호가 써진 다이얼 화면을 띄울 수 있다.

        // 3. 번호 다이얼 띄우기
        button3.setOnClickListener { view ->

            var uri = Uri.parse("tel:01020562708")

            var intent = Intent(Intent.ACTION_DIAL, uri)
            startActivity(intent)
        }

 

5. 자동으로 전화걸기

- 전화거는건 돈이 나가기 때문에 권한 요청이 필요하다.

 

* 권한요청하기

1) AndroidMenifest.xml에 <use-permission> 태그를 설정한다.

    <uses-permission android:name="android.permission.CALL_PHONE"/>

2) 요청해야할 권한에 대한 배열을 선언한다.

    var permission_list = arrayOf(Manifest.permission.CALL_PHONE)

3) 권한 요청 함수를 만든다.

    // 4. 전화걸기를 위한 권한 요청
    fun checkPermission()
    {
        if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
        {
            return
        }
        for (permission : String in permission_list)
        {
            var chk = checkCallingOrSelfPermission(permission)
            
            if(chk == PackageManager.PERMISSION_DENIED)
            {
                requestPermissions(permission_list, 0)
            }
        }
    }

4) 앱띄울 때 권한요청 메세지를 띄우고 버튼을 누르면 ACTION_CALL로 전화가 바로 걸리게 설정한다.

        button4.setOnClickListener { view ->

            var uri = Uri.parse("tel:01020562708")

            var intent = Intent(Intent.ACTION_CALL, uri)
            startActivity(intent)
        }