5

私のコード ロジックでは、デバイスに SD カードをインストールする必要があります。アプリケーションのスプラッシュ画面にこのケースのチェックを追加しましたが、このアプリをダウンロード/インストールする前にユーザーに通知したいと思います。これを達成する方法はありますか?

ありがとう !

4

3 に答える 3

2

このようなことを制限する唯一の方法は<uses-feature>タグを使用することであるため、アプリをインストールする前にこれを行う方法はありません。ただし、そのタグにはストレージ要件のオプションがありません。与えることができる最善の警告は、アプリの説明に目立つように含めることです。

一方、私がこれまでに遭遇したことを聞いたすべてのデバイスには、SDカードであれ、外部ストレージとしてマウントされた内蔵メモリであれ、何らかの形の外部ストレージがあります。他に選択肢がないため、スプラッシュ画面を使用して外部ストレージをチェックすることは、これを行うための最良の方法です。

于 2012-09-13T09:34:01.143 に答える
0

それを行う方法はありません。ユーザーの環境を確認するには、アプリをインストールする必要があります。アプリの SD カード インストールを強制しようとすることもできます。そのため、Google Playがない場合、 (テストされていない) アプリのインストールがまったく許可されない可能性がありますが、ユーザーはまだ理由がわからないため、問題は解決しません。解決策は、SD カードが必須であることを製品説明に明記することです。ただし、多くのデバイスには外部ストレージがありながらSDカードがないため、SDカードを必要とするのは危険です. 私の提案 - ストレージ要件に関するメモを追加して、システムに処理させてください。

于 2012-09-13T09:31:51.387 に答える
0

不可能だと思います。スプラッシュ画面でSDカードをチェックしていて、ユーザーが次のプロセスに進むのを防ぐのが正しい解決策であるandroid:installLocation、SDカードにAndroidアプリケーションをインストールするために使用します。

API レベル 8 以降、アプリケーションを外部ストレージ (デバイスの SD カードなど) にインストールできるようになりました。これは、android:installLocation マニフェスト属性を使用してアプリケーションに対して宣言できるオプションの機能です。

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

「preferExternal」を宣言すると、アプリケーションを外部ストレージにインストールするように要求されますが、システムはアプリケーションが外部ストレージにインストールされることを保証しません。外部ストレージがいっぱいになると、システムはそれを内部ストレージにインストールします。ユーザーは、2 つの場所の間でアプリケーションを移動することもできます。

アプリケーションが外部ストレージにインストールされている場合:

  • 外部ストレージがデバイスにマウントされている限り、アプリケーションのパフォーマンスに影響はありません。
  • .apk ファイルは外部ストレージに保存されますが、すべてのプライベート ユーザー データ、データベース、最適化された .dex ファイル、および抽出されたネイティブ コードは内部デバイス メモリに保存されます。
  • アプリケーションが保存されている一意のコンテナは、ランダムに生成されたキーで暗号化されており、最初にインストールしたデバイスだけが復号化できます。したがって、SD カードにインストールされたアプリケーションは、1 つのデバイスに対してのみ機能します。
  • ユーザーは、システム設定を通じてアプリケーションを内部ストレージに移動できます。

詳細はこちらをご覧ください。

于 2012-09-13T09:35:23.297 に答える