728x90
    
    
  안녕하세요 오늘은 기기 내에 이동할 앱이 있는지 확인하여 있다면 해당 앱으로 이동하고 없다면 구글플레이스토어로 이동하는 예제를 만들어보겠습니다.
먼저 매니페스트 파일에 다른 앱과 상호작용을 위해 queries를 이용해 앱을 지정합니다
<queries>
    <package android:name="com.albamon.app"/>
</queries>
이 코드는 manifest태그 하위 태그로 지정합니다.
다음은 액티비티 xml파일입니다. 버튼 하나를 만들어 클릭했을 때 이동 되게끔 만들겁니다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="알바몬 앱으로 이동"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        android:id="@+id/move_to_albamon_btn"/>
</androidx.constraintlayout.widget.ConstraintLayout>
다음은 액티비티의 클래스 파일입니다.
public class MainActivity extends AppCompatActivity {
    Button move_to_albamon_btn;
    String albamon_package_name = "com.albamon.app";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        move_to_albamon_btn = findViewById(R.id.move_to_albamon_btn);
        move_to_albamon_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(CheckPackageName(albamon_package_name)){
                    Intent albamon_intent = getPackageManager().getLaunchIntentForPackage(albamon_package_name);
                    startActivity(albamon_intent);
                }else {
                    String url = "market://details?id=" + albamon_package_name;
                    Intent albamon_intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                    startActivity(albamon_intent);
                }
            }
        });
    }
    public boolean CheckPackageName(String package_name) {
        boolean isExist = false;
        PackageManager packageManager = getPackageManager();
        List<ResolveInfo> mApps;
        Intent intent = new Intent(Intent.ACTION_MAIN, null);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        mApps = packageManager.queryIntentActivities(intent, 0);
        try {
            for (int i = 0; i < mApps.size(); i++) {
                if(mApps.get(i).activityInfo.packageName.startsWith(package_name)){
                    isExist = true;
                    break;
                }
            }
        }
        catch (Exception e) {
            isExist = false;
        }
        return isExist;
    }
}
'안드로이드 자바' 카테고리의 다른 글
| [Android][Java] RecyclerView에 Loading Progress Bar 아이템 추가하기 (0) | 2023.04.23 | 
|---|---|
| [Android][Java] 네이버 지도에 현재 위치 표시하기 (0) | 2023.04.22 | 
| [Android][Java] Socket.io를 사용해서 서버와 통신하기 (0) | 2023.04.18 | 
| View에 그라데이션 적용하기 (0) | 2023.04.17 | 
| [Android][JAVA]원형 이미지뷰 만들기 (0) | 2023.04.16 |