1

マップ機能を備え、Android OS 上で動作するアプリケーションを開発したいと考えています。私の質問は、このアプリを Google マップ ライブラリなしで Android デバイスで実行するにはどうすればよいですか?

たとえば、いくつかのフラグメントを含むアクティビティがあり、そのうちの 1 つにマップ フィーチャが含まれています。この場合、アクティビティ「MUST」は、マップ ライブラリにある MapActivity を拡張します。これは、GMS を備えたデバイスでは問題ありませんが、GMS を備えていないデバイスではどうですか?

まず、AndroidManifest.xml にマップ ライブラリの属性「required="false"」を追加します。

<uses-library android:name="com.google.android.maps" 
    android:required="false"/>

また、デバイスにマップ ライブラリがない場合、アクティビティでマップ フラグメントを使用しないようにします。ただし、アクティビティは MapActivity を拡張し、MapActivity はマップ ライブラリにあります。このアクティビティは、デバイスにマップ ライブラリがある場合に MapActivity を拡張し、デバイスにない場合に Activity を拡張するにはどうすればよいですか?

4

1 に答える 1

2

これを実装するには、MapFragment を拡張するクラスと Fragment または Activity を拡張するクラスの 2 つを用意し、Google Play Services の可用性を確認します。

Google マップ V2 を使用する予定がある場合 (V1 は 3 月に動作を停止するため、使用する必要があります)、Google Play サービスが利用可能かどうかを確認する方法がありますhttp://developer.android.com/google/play-services/setup. html

Google Play サービスが利用可能かどうかを確認したら、MapFragment を拡張するアクティビティまたは Activity を拡張するアクティビティをインスタンス化できます。

もちろん、共通の機能はクラス間で共有されます。この場合、継承が利用できないため、合成を通じて行う必要があります。

于 2013-01-31T11:43:18.397 に答える