質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

1回答

2355閲覧

【Android】強制アップデートダイアログが表示されない

mitsuki_

総合スコア20

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2019/10/09 01:56

前提・実現したいこと

Android公式ドキュメントを参照しながら、
強制アップデートを自作アプリに実装しています。
しかし、ダイアログが表示されたり、表示されなかったりするバグが起きています。

該当のソースコード

java

1import android.content.Intent; 2import android.content.IntentSender; 3import android.os.Bundle; 4import android.os.Handler; 5import android.support.annotation.Nullable; 6import android.support.v7.app.AppCompatActivity; 7import android.util.Log; 8import android.view.View; 9import android.view.WindowManager; 10 11import com.google.android.play.core.appupdate.AppUpdateInfo; 12import com.google.android.play.core.appupdate.AppUpdateManager; 13import com.google.android.play.core.appupdate.AppUpdateManagerFactory; 14import com.google.android.play.core.install.model.AppUpdateType; 15import com.google.android.play.core.install.model.UpdateAvailability; 16import com.google.android.play.core.tasks.Task; 17import com.kiyokiyo.proteincalenderapp.R; 18import com.kiyokiyo.proteincalenderapp.constants.AppConstants; 19 20import static com.google.android.play.core.install.model.AppUpdateType.IMMEDIATE; 21 22public class SplashActivity extends AppCompatActivity { 23 24 private Handler mHandler; 25 private static final int MY_REQUEST_CODE = 1111; 26 private AppUpdateManager appUpdateManager; 27 28 @Override 29 protected void onCreate(@Nullable Bundle savedInstanceState) { 30 super.onCreate(savedInstanceState); 31 32 appUpdateManager = AppUpdateManagerFactory.create(this); 33 Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo(); 34 35 appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> { 36 if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE 37 && appUpdateInfo.isUpdateTypeAllowed(IMMEDIATE)) { 38 39 try { 40 appUpdateManager.startUpdateFlowForResult( 41 appUpdateInfo, 42 AppUpdateType.IMMEDIATE, 43 this, 44 MY_REQUEST_CODE); 45 46 } catch (IntentSender.SendIntentException e) { 47 e.printStackTrace(); 48 } 49 } 50 }); 51 52 //スプラッシュActivityをセットする処理 53 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 54 View decorView = getWindow().getDecorView(); 55 decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 56 setContentView(R.layout.activity_splash); 57 } 58 59 @Override 60 protected void onResume() { 61 super.onResume(); 62 63 appUpdateManager 64 .getAppUpdateInfo() 65 .addOnSuccessListener( 66 appUpdateInfo -> { 67 //基本的に「1」と表示される。ダイアログは表示されない。 68 Log.d("loglog", "" + appUpdateInfo.updateAvailability()); 69 if (appUpdateInfo.updateAvailability() 70 == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) { 71 // If an in-app update is already running, resume the update. 72 try { 73 appUpdateManager.startUpdateFlowForResult( 74 appUpdateInfo, 75 IMMEDIATE, 76 this, 77 MY_REQUEST_CODE); 78 } catch (IntentSender.SendIntentException e) { 79 e.printStackTrace(); 80 } 81 } 82 }); 83 84 mHandler = new Handler(); 85 mHandler.postDelayed(new Runnable() { 86 @Override 87 public void run() { 88 //スプラッシュActivityからトップ画面Activityに遷移する処理 89 startActivity(TopActivity.getStartIntent(SplashActivity.this)); 90 finish(); 91 } 92 }, AppConstants.SPLASH_ANIMATION_INTERVAL); 93 } 94 95 @Override 96 protected void onPause() { 97 super.onPause(); 98 if (mHandler != null) { 99 mHandler = null; 100 } 101 } 102 103 @Override 104 public void onActivityResult(int requestCode, int resultCode, Intent data) { 105 if (requestCode == MY_REQUEST_CODE) { 106 if (resultCode != RESULT_OK) { 107 Log.i("update", "Update flow failed! Result code: " + resultCode); 108 } 109 } 110 } 111 112 @Override 113 protected void onStop() { 114 super.onStop(); 115 } 116 117 @Override 118 public void onBackPressed() { 119 } 120} 121 122
  • build.gradle
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation files('libs/commons-lang3-3.8.1.jar') implementation 'com.google.android.play:core:1.6.0' }

試したこと

  • play:core:1.6.0をplay:core:1.6.3(最新)にしても表示されない。
  • google play consoleで内部テストとして、バージョンに1つ分差があるapkを2つアップロードし、内部テストURLを押下して端末にインストールするという流れでテストいている。

【参考サイト】

補足情報(FW/ツールのバージョンなど)

  • AndroidStudio3.0.1
  • JRE1.8.0.152
  • 検証端末Android9

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

質問から少し外れますが、こんなのもあるみたいです。
https://teckmemo.com/post-113/

投稿2019/10/09 07:10

salud

総合スコア215

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問