본문 바로가기

안드로이드 스튜디오

[안드로이드 스튜디오 코틀린] 버튼 누르면 다른 앱으로 이동하기, getLaunchIntentForPackage not working

728x90
반응형

 

 

 

 

 

 

버튼을 누르면 토스 앱으로 연결하는 기능을 구현 해보았다.

 

 

 

 

 

 

 

 

1. AndroidManifest.xml에 

 

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

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

    <queries>
        <package android:name="viva.republica.toss"/>
    </queries>

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"

 

이렇게 queries를 넣어서 toss 앱의 package 명을 적어주어야 한다.

 

 

 

이 부분을 하지 않을 시 화면 이동이 잘 이루어 지지 않는다!!!!!!!!!!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. MainActivity.kt

 

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    val packageName = "viva.republica.toss"

    binding.tossIV.setOnClickListener {
        val intent = packageManager.getLaunchIntentForPackage(packageName) ?: Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$packageName"))
        startActivity(intent)
    }
}

 

 

activity_main.xml에 Toss ImageView를 추가하여 id를 tossIV로 설정하고 바인딩 설정을 한 뒤, 

버튼을 누르면 Intent로 화면 이동을 할 수 있게 해준다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형