1

私はこのコードを書いており、非静的メソッドGoogleApiAvailability.isGooglePlayServicesAvailable(コンテキストコンテキスト)とGoogleApiAvailability.getErrorDialog(アクティビティアクティビティ、int errorCode、int requestCode)は静的コンテキストから参照できません。グーグルによる非静的メソッドisGooglePlayServicesAvailableとgetErrorDialogを静的コンテキストから参照することはできません

package com.xamarin.gcmexample; 
import android.app.Dialog; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import com.google.android.gms.common.ConnectionResult; 
import com.google.android.gms.common.api.GoogleApiClient; 
import com.google.android.gms.common.GoogleApiAvailability; 
import android.util.Log; 
import android.widget.TextView; 

public class Main extends AppCompatActivity { 
    TextView msgText; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     msgText = (TextView) findViewById(R.id.msgText); 

    } 
    protected void IsPlayServicesAvailable() 
    { 
     int resultCode = GoogleApiAvailability.isGooglePlayServicesAvailable(this); 
     if (resultCode == ConnectionResult.SUCCESS){ 
      msgText.setText("isGooglePlayServicesAvailable SUCCESS"); 

     }else{ 
      GoogleApiAvailability.getErrorDialog(this, resultCode, 1).show(); 
     } 
    } 

} 

答えて

7

ナーランはすでに正解を指摘しています。

私は上記のコードでは、 "パブリック静的GoogleApiAvailabilityのgetInstance()" を使用することができますどのように
protected void IsPlayServicesAvailable() { 
    int resultCode = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this); 

    if (resultCode == ConnectionResult.SUCCESS){ 
     msgText.setText("isGooglePlayServicesAvailable SUCCESS"); 
    } else { 
     GoogleApiAvailability.getInstance().getErrorDialog(this, resultCode, 1).show(); 
    } 
} 
1

、このlinkは言う:静的isGooglePlayServicesAvailable(Context ctx)非静的isGooglePlayServicesAvailable(Contex ctx)を使用し、推奨されていません。 (そしてあなたのためにpublic static GoogleApiAvailability getInstance()があります;))

+0

によってあなたの方法

protected void IsPlayServicesAvailable() { int resultCode = GoogleApiAvailability.isGooglePlayServicesAvailable(this); if (resultCode == ConnectionResult.SUCCESS){ msgText.setText("isGooglePlayServicesAvailable SUCCESS"); } else { GoogleApiAvailability.getErrorDialog(this, resultCode, 1).show(); } } 

を置き換えますか?あなたは説明してください。 –

+0

@ManasMaity、_GoogleApiAvailability_のインスタンスを取得し、インスタンスから使用**非静的isGooglePlayServicesAvailable(Contex ctx)** 'GoogleApiAvailability instance = GoogleApiAvailability.getInstance(); int res = instance.isGooglePlayServicesAvailable(Contex ctx); ' – Nurlan

+0

答えに感謝します。それは正常に動作します –

関連する問題