web-dev-qa-db-ja.com

Androidでアプリケーションを自動的に更新する方法はありますか?

ほとんどの場合、デバイスにプリインストールされるアプリケーションを開発しています。 Google Playでも利用できるようになります。 Google Playは更新についてユーザーに通知しないため、Google Playからダウンロードされないインスタンスを更新する方法はありますか。

ここで提案 のように考えていたので、定期的に私のサイトに連絡して、アップデートが利用可能になったらダウンロードしてください。

この更新を自動的に、またはサイレントで行う方法があります。そのため、ユーザーは何もする必要がありません(パッケージを手動で実行するなど)。または、私のサイトでアップデートが利用可能であると表示された場合、マーケットからインストールされていなくてもユーザーにGoogle Play経由でアップデートを提供します(編集:このGoogleプレイオプションは、ユーザーが「インストールを許可する」をチェックする必要がないため、非市場ソース」。)

35
Levara

私は同じ問題を抱えていましたが、今では私の構成xmlに新しいバージョンがあるかどうかをアプリの開始時に確認します。

実際のバージョンと、ユーザーがアップグレードを続行するかどうかをカスタムAlertDialogで尋ねた場合、configuration.xmlのタグ「<app_version> 1.1 </ app_version>」と比較します

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse(myapk_link));
startActivity(intent);    

ダウンロード後、ユーザーはパッケージを手動で実行する必要があります。

Android市場での使用から更新を選択した場合:

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://details?id=com.package.name"));
startActivity(intent);  

com.package.nameはアプリの「パッケージ」でなければなりません

または

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APP_NAME));
startActivity(intent);  
43
Jorgesys

動作する方法を見つけただけです。私のアプリケーションを検索するマーケットに対してインテントを起動します。

古いバージョンの.apkを簡単に見つけられるため、OpenIntent Newsreaderでテストしました。 Marketはアプリケーションを見つけ、ユーザーがインストールをクリックすると、古いバージョンをMarketのバージョンに置き換えます。 .apkを手動でダウンロードして実行するよりも、ユーザーにとってはるかに簡単なソリューションだと思います。

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APPLICATION_NAME));
startActivity(intent);  
8
Levara

Google Playは更新についてユーザーに通知しないため、Google Playからダウンロードされないインスタンスを更新する方法はありますか。

古い質問、新しい答え:

まったく同じ質問(デバイスにプリインストールされたアプリ、Google-Playでアップデートを提供する方法)を掘り下げた後、この情報を support.google.com *で見つけました。

Google Playは、次の条件が満たされている場合、プリロードされたアプリケーションの更新を管理できます。

  • プリロードされたアプリはシステムパーティションにある必要があります
  • プリロードされたアプリは無料である必要があります
  • プリロードされたアプリは、Google Playで公開されたアプリと同じ署名で署名する必要があります
  • プリロードおよび更新されたアプリのパッケージ名は同じである必要があります
  • 更新されたアプリのバージョンコードは、プリロードされたアプリのバージョンコードよりも大きい必要があります

* 2015-04-13現在

7
GeneSys

ほとんどの場合、デバイスにプリインストールされるアプリケーションを開発しています。

次に、デバイスの製造元と話し合い、質問をする必要があります。自分のデバイスとそれを配布するキャリアを考えると、他に誰もあなたに何が可能で何が不可能かを伝えることはできません。答えは、ファームウェアの作成方法、アプリケーションがファームウェアの一部であるか、通常のアプリとして「インストール」されるか、キャリアとの取り決めが何であるかに大きく依存しますvisに対してファームウェアアップデート、など。あなたはその問題に投票することさえできないかもしれません。

4
CommonsWare

デバイスにアプリをバンドルしたユーザーが適切に機能する場合、アプリにはマーケットリンクがあり(システムアプリとしても)、新しいバージョンが利用可能な場合、マーケットはユーザーにアップグレードを促します。結局のところ、それはまさに、電話にプリインストールされているGMailのようなアプリで起こることです。

1
hobbs

パッケージを自動的にインストールまたはアップグレードすることはできません。 Android Marketのみがこれを実行できます(つまり、自動的に更新されます)。

パッケージをダウンロードしてIntentを起動してインストールすることはできますが、ユーザーは[マーケット以外のアプリを許可する]オプションを有効にする必要があり、インストール/アップグレードを手動で承認する必要があります。 。

調査する可能性のある場所の1つは、Googleマップがそれを行う方法です。これは通常、事前にインストールされていますが、Android Marketアプリでは、アップデートとして常に表示されるようです。packages.xmlまたはマニフェストに特別なフラグがあるかどうか、わからない.

0
Christopher Orr

アプリをシステムアプリとして署名できる場合は、アプリを完全に自動的に更新することができます。特定のハードウェア用のアプリを作成し、製造元が署名した更新アプリを作成しました。更新アプリは、デバイスの起動時に実行され、アプリの現在のバージョンと新しいバージョンを確認し、必要に応じて新しいバージョンをインストールします。

ユースケースは、Google Playを持たない1つのメーカーとモデルのタブレット上のキオスクアプリです。

0
Christine

アプリの更新を継続するのに役立つ素敵なサービスがあります。 https://www.pushlink.com をご覧ください

この製品には、ユーザーの操作なしで更新を実行できるNINJAモードがあります。

その他の「モード」については、「非市場アプリのインストール」を有効にする必要があります。有効になっていない場合、インストールプロセスはそれを要求し、ユーザーをアプリケーション設定にリダイレクトします。その後、ユーザーはアプリをインストールできます。

0
CelinHC