본문 바로가기
온라인 수익창출/앱 개발

4. Dialog 안드로이드 스튜디오 60세도 따라하는 앱코딩(업데이트 알람#3)

by 유마컨 2022. 6. 19.
반응형

안녕하세요 디불624 입니다.

오늘이 업데이트 알람 마지막입니다.

이번엔 복잡한 거 없이 Dialog를 이용한 코딩이면 마무리됩니다.

사진과 간단한 설명으로 마무리할 수 있을 거 같아요.

 

 

 

MainActivity

여기까지가 MainActivity 추가분입니다.

 

public class MainActivity extends AppCompatActivity {

   FirebaseRemoteConfig mFirebaseRemoteConfig;
   long newAppversion = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
        FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()

                .build();
        mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
        mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

        mFirebaseRemoteConfig.fetchAndActivate()
                .addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
                    @Override
                    public void onComplete(@NonNull Task<Boolean> task) {
                        checkVersion(task.isSuccessful());

                    }
                });
    }
private void checkVersion(boolean successful) {
        if (successful) {
            newAppversion = mFirebaseRemoteConfig.getLong("new_app_version");
            try {
                PackageInfo pinfo = getPackageManager().getPackageInfo(getPackageName(),0);
                long appVersion;
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P){
                    appVersion = pinfo.getLongVersionCode();
                }else {
                    appVersion = pinfo.versionCode;
                }

                if (appVersion < newAppversion){
                    AlertDialog.Builder builder = new AlertDialog.Builder(this);
                    builder.setTitle("업데이트 알림");
                    builder.setMessage("최신버전이 등록되었습니다. \n 업데이트를 진행해 주세요")
                            .setCancelable(false)
                            .setPositiveButton("업데이트",new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Intent intent = new Intent(Intent.ACTION_VIEW);
                                    intent.setData(Uri.parse("market://details?id=com.jds.food"));
                                    startActivity(intent);
                                    dialog.cancel();
                                    Toast.makeText(getApplicationContext(), "업데이트 버튼 클릭됨",
                                            Toast.LENGTH_SHORT).show();
                                }
                            });
                    AlertDialog alertDialog = builder.create();
                    alertDialog.show();
                }
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
        }else {

        }
    }
}

위와 같이 메인 액티비티를 추가해 줍니다.

시작하신 지 얼마 안 되신 분들은 앱의 완성단계에서 추가해주셔도 무방합니다.

 

 

에러가 뜨는 부분이다 다음과 같이 해결할 수 있다.

그냥 알파벳 P라고 입력하면 에러가 뜬다. CODES.찍고 기다리고 있으면 다음과 같이 보기가 나오며

여기서 P ( = 28)를 선택해 주면 됩니다.

 

 

앱을 업데이트하지 않았지만 firebase에서 버전을 높게 설정해 놔서

업데이트 메시지도 잘 뜨고 클릭 시 구글 플레이로 잘 이동되는 것도 확인되었습니다.

 

 

 

업데이트 확인

 

이제 다음화부터는 본격적으로 기초적인 공부를 시작하도록 하겠습니다.

 

반응형

댓글