Android 1.6 と互換性のあるアプリケーションを作成していますが、Android 2.2 を実行しているユーザーに、アプリケーションのインストールを SD カードに移動するオプションを提供したいと考えています。
アプリケーションを 1.6 用にコンパイルし、2.2 ユーザーが自分の sd にアプリケーションをインストールできるようにするにはどうすればよいですか?
Android 1.6 と互換性のあるアプリケーションを作成していますが、Android 2.2 を実行しているユーザーに、アプリケーションのインストールを SD カードに移動するオプションを提供したいと考えています。
アプリケーションを 1.6 用にコンパイルし、2.2 ユーザーが自分の sd にアプリケーションをインストールできるようにするにはどうすればよいですか?
あなたのマニフェストで:
<manifest>
を追加します。android:installLocation="preferExternal
uses-sdk
を " <uses-sdk android:minSdkVersion="4">
"のままにします次に、[Project] > [Properties] > [Android] (左側) に移動し、ビルド ターゲットを 2.2 に変更すると、準備完了です。
プロジェクトは 2.2 を使用してビルドされますが (それでも 1.6 しか必要ありません)、1.6 を実行しているデバイスは、マニフェストの新しい "installLocation" 設定を単純に無視します。2.2 で導入されたマテリアルを実際のコードに追加しないように注意してください。コンパイラがそれをキャッチしなくなるためです。
これは、開発者ガイドが示唆するほどシームレスではありません。まず、installLocation がマニフェストに存在し、ビルド ターゲットが 2.2 以外に設定されている場合、アプリケーションはビルドされません。
error: No resource identifier found for attribute 'installLocation' in
package 'android'
したがって、ビルド ターゲットを 1.6 に設定して後方互換性をテストするには、マニフェストも編集する必要があります。
第 2 に、ビルド ターゲットが 2.2 に設定されると、テスト用に API レベルが低いエミュレーターを選択できなくなります。ただし、1.6 エミュレーターを手動で起動してアプリを実行することはできますが、ビルド ターゲットが 2.2 の場合 (minSdkVersion=4 であっても)、アプリが 1.6 デバイス用の Android マーケットに表示されるかどうかに興味があります。テストする実際のデバイスはありません。これが市場での入手可能性に影響しないことを誰かが確認できますか?
最後に、次の警告が残ります。
Attribute minSdkVersion (4) is lower than the project target API level (8)