2016-10-09 9 views
0

以前は、バックグラウンドサービスのPubNubを使ってアンドロイドに位置情報を公開しました。私はこれを別のプロジェクトに使用して、新しいAPIをテストする簡単なサービスを作成しました。しかし、出版は常に失敗し、私はなぜそれを突き止めることができません。ここでPubNubはサービスから公開していません

は、サービスコードです:MainActivityで

public class MessageService extends Service { 
    private static final String TAG = "MessageService"; 
    private PubNub pubnub; 
    private Timer timer = new Timer(); 

    public MessageService() { 
     PNConfiguration config = new PNConfiguration(); 
     config.setPublishKey("pub_key_removed_for_privacy"); 
     pubnub = new PubNub(config); 
    } 

    TimerTask task = new TimerTask() { 
     @Override 
     public void run() { 
      pubnub.publish() 
        .channel("demo") 
        .message("hello from service") 
        .async(new PNCallback<PNPublishResult>() { 
         @Override 
         public void onResponse(PNPublishResult result, PNStatus status) { 
          if (status.isError()) { 
           Log.e(TAG, "Publish failed"); 
          } else { 
           Log.d(TAG, "Publish successful"); 
          } 
         } 
        }); 
     } 
    }; 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     timer.schedule(task, 0, 5000); 

     return START_REDELIVER_INTENT; 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 

     timer.cancel(); 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     return binder; 
    } 

    private final IBinder binder = new ServiceBinder(); 

    public class ServiceBinder extends Binder { 
     public MessageService getService() { 
      return MessageService.this; 
     } 
    } 
} 

、私は単にSTARTSERVICE()を呼び出して、ログを見て、私はいつも失敗メッセージが表示されます。私はマニフェストでinternetとnetwork_stateの権限を持っていますが、これが動作していない理由を考えることはできません。助言がありますか? PubNubは、キーを購読

+1

@CraigConoverこれを回答として投稿することができますか? –

答えて

1

は常にあなたが唯一の公開キーでPubNubを初期化している

が必要となります。 subscribe key is always required when you config/init PubNub、公開する予定がある場合でも。

あなたはPubNub操作(subscribepublishhistoryなど)

を実行しようとしたとき、あなたは 400 - Invalid Subscribe Key error応答を取得します、あなたは購読キーでinitをしていない、またはそれが無効(タイプミスまたは無効)である場合
public MessageService() { 
    PNConfiguration config = new PNConfiguration(); 
    config.setPublishKey("your-pub-key"); 
    config.setSubscribeKey("your-sub-key"); 
    pubnub = new PubNub(config); 
} 
関連する問題