Ранее я использовал PubNub из справочной службы для публикации обновлений местоположения на Android. Я хочу использовать его для другого проекта и написал простой сервис для тестирования нового API. Однако публикация всегда терпит неудачу, и я не могу точно определить, почему.PubNub, не публикуемый со службы
Вот код услуги:
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;
}
}
}
В MainActivity, я просто называю StartService() и смотреть журналы и я всегда получаю сообщение об ошибке. У меня есть права доступа к интернету и network_state в моем манифесте, и я не могу думать о каких-либо других причинах, почему это не работает. Какие-либо предложения?
@CraigConover Вы можете разместить это в качестве ответа, чтобы я мог отметить его как таковой? –