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は、キーを購読
@CraigConoverこれを回答として投稿することができますか? –