2017-07-27 5 views
0

アンドロイドアプリからデバイストークンをプログラムでAWS SNSプラットフォームアプリケーションに保存しようとしています。getApplicationContextエラー

getApplicationContext()メソッドでエラーが発生しました。このエラーの解決策をお持ちの方?

これは私のコードです:コンテキスト

private Context mContext; 

public RegisterIdForAWS (Context context){ 
    mContext = context; 
} 

を渡し、あなたの非同期クラスのコンストラクタで

public class RegisterIdForAWS extends AsyncTask<String, Void, Void> { 
    private Exception exception; 

    @Override 
    protected Void doInBackground(String... strings) { 
     try { 
      String pushNotificationRegId = FirebaseInstanceId.getInstance().getToken(); 

      if (pushNotificationRegId != null) { 

       CognitoCachingCredentialsProvider provider = new CognitoCachingCredentialsProvider(
         getApplicationContext(), 
         "us-west-2:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 
         Regions.US_WEST_2); 
       String platformApplicationArn = "arn:aws:sns:us-west-2:11111111111:app/GCM/123"; 
       AmazonSNSClient pushClient = new AmazonSNSClient(provider); 
       pushClient.setRegion(Region.getRegion(Regions.US_WEST_2)); 

       String customPushData = ""; 
       CreatePlatformEndpointRequest platformEndpointRequest = new CreatePlatformEndpointRequest(); 
       platformEndpointRequest.setCustomUserData(customPushData); 
       platformEndpointRequest.setToken(pushNotificationRegId); 
       platformEndpointRequest.setPlatformApplicationArn(platformApplicationArn); 
       CreatePlatformEndpointResult result = pushClient.createPlatformEndpoint(platformEndpointRequest); 
       Log.w(TAG, "Amazon Push reg result: " + result); 
      } 
     } catch (Exception e) { 
      this.exception = e; 
     } 

     return null; 
    } 

    protected void onPostExecute(String text) { 
     Log.w(TAG, "Amazon Push reg Finished"); 
    } 


} 
+0

このAsyncTaskを使用しているアクティビティでは、詳細を適切に処理し、回答を適切に配信できるようにします。そうでなければ、@Andrea Ebanoが与えた以下の答えは正しい。 –

答えて

0

そして、このようにクラスをインスタンス化:

RegisterIdForAWS task = new RegisterIdForAWS (context); 

はそれがお役に立てば幸いです。

関連する問題