2012-03-12 4 views
2

私は自分の会社のために大きなAndroidアプリケーションを持っています。私たちは、オーバーレイを使用したアクティビティを含め、ポジションを表示するためにgoogle maps apiを頻繁に使用しています。この問題は現在、Android搭載のタブレット端末のサポートを受けています。大多数がGoogleマップをサポートしていないため、Googleのアプリはインストールされません。マニフェストにデバイス上で利用可能な場合のみ、GoogleマップのAPIを要求することは可能ですか?利用できない場合は、マッピング機能を無効にします。Google Maps APIのサポートをオプションで必要とする可能性はありますか?

答えて

6

マニフェストにデバイスで利用可能な場合のみ、GoogleマップAPIを要求することは可能ですか?

はい。 Googleマップをリクエストしている<uses-library>の要素にandroid:required="false"を含めます。リフレクションを使用して、たとえばDalvik VMにMapActivityが存在するかどうかを確認することができます。そうした場合、マップ対応デバイス上にあり、安全に地図を起動できます。存在しない場合は、マッピング機能を無効にする必要があります。

Here is a sample applicationMapActivityが存在し、その後、いずれかの転送が実際MapActivity実装に制御したり、アプリが非Googleマップのデバイス上で実行されている場合Toastを発生させた場合に見MapDetectorLAUNCHER活動で、これを実証します。ここで

は、そのプロジェクトからMapDetector活動の実装です:

public class MapDetector extends Activity { 
    @Override 
    public void onCreate(Bundle instanceState) { 
    super.onCreate(instanceState); 

    try { 
     Class.forName("com.google.android.maps.MapActivity"); 
     startActivity(new Intent(this, NooYawk.class)); 
    } 
    catch (Exception e) { 
     Toast 
      .makeText(this, 
         "Google Maps are not available -- sorry!", 
         Toast.LENGTH_LONG) 
      .show(); 
    } 

    finish(); 
    } 
} 
+0

はどうもありがとうございました。これはまさに私が探していたものです。 –

関連する問題