30.03.2015 / 07:35 | |
Oak Пользователь Сейчас: Offline
Имя: Коля Откуда: Москва Регистрация: 02.06.2010
| Nevesel, вообще, идея писать на Pure Android игру — не очень хорошая. И да, в стандартной библиотеке нет эквивалента TiledLayer'у. Слава богу, написать свой тайлдлеер — дело десяти минут, я в своё время много их писал. Советую попробовать, в этом нет ничего сложного, а для развития полезно.
__________________
Эль Презеденте |
30.03.2015 / 13:39 | |
ВитаминКО Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| Цитата Nevesel: А вот кстати про большие, и не очень игры- а как тайлы сделать для текстур ландшафта? Ну не сотни же отдельных рисунков загружать для обычной игровой карты? Или GameCanvas использовать?По идее несколько маленьких тайлов скрепляешь в одну большую картинку и программно режешь. Стандартными средствами, либо как Oak, костыль. И да, думаю, будет в тему - http://annimon.com/forum/id321747 __________________
わからない!! Изменено Oak (30.03 / 14:01) (всего 1 раз) |
30.03.2015 / 14:00 | |
Oak Пользователь Сейчас: Offline
Имя: Коля Откуда: Москва Регистрация: 02.06.2010
| ВитаминКО, это не костыль. Это вполне себе стандартное средство.
__________________
Эль Презеденте |
30.03.2015 / 16:44 | |
swank Пользователь Сейчас: Offline
Имя: Виталий Откуда: Киев Регистрация: 07.09.2012
| У меня есть привычка удалять все входящие сообщения на телефоне, некоторые из них оказуются нужными. Решил сделать бекапер прям на сервер. Зделал отлов сообщений: Открыть спойлер Закрыть спойлер public class SMSMonitor { //}extends BroadcastReceiver {
private static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent != null && intent.getAction() != null &&
ACTION.compareToIgnoreCase(intent.getAction()) == 0) {
Object[] pduArray = (Object[]) intent.getExtras().get("pdus");
SmsMessage[] messages = new SmsMessage[pduArray.length];
for (int i = 0; i < pduArray.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pduArray[i]);
}
String sms_from = messages[0].getDisplayOriginatingAddress();
String sms_to = "38097xxxxxxx";
StringBuilder bodyText = new StringBuilder();
for (int i = 0; i < messages.length; i++) {
bodyText.append(messages[i].getMessageBody());
}
String body = bodyText.toString();
Intent mIntent = new Intent(context, SmsService.class);
mIntent.putExtra("sms_from", sms_from);
mIntent.putExtra("sms_body", body);
mIntent.putExtra("sms_to", sms_to);
context.startService(mIntent);
}
}
}
И сюда передаются данные Открыть спойлер Закрыть спойлер public class SmsService extends Service {
private class SmsData {
public int hh;
public int mm;
public String description;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
private void sendSmsToServer(String from, String text, String number){
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://xxx/script.php");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("from", from));
nameValuePairs.add(new BasicNameValuePair("text", text));
nameValuePairs.add(new BasicNameValuePair("number", number));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String sms_from = intent.getExtras().getString("sms_from");
String sms_body = intent.getExtras().getString("sms_body");
String sms_to = intent.getExtras().getString("sms_to");
sendSmsToServer(sms_from, sms_body, sms_to);
return START_STICKY;
}
}
Но но не работает, вылетает при приходе сообщения и в логе: 17:30:52.755 java.lang.RuntimeException: Unable to start service ua.the_swank.backupsms.SmsService@412f1220 with Intent { cmp=ua.the_swank.backupsms/.SmsService (has extras) }: android.os.NetworkOnMainThreadException Изменено swank (30.03 / 16:49) (всего 4 раза) |
30.03.2015 / 19:05 | |
swank Пользователь Сейчас: Offline
Имя: Виталий Откуда: Киев Регистрация: 07.09.2012
| Все понял что надо делать
|
30.03.2015 / 20:05 | |
swank Пользователь Сейчас: Offline
Имя: Виталий Откуда: Киев Регистрация: 07.09.2012
| Сделал так public void sendSmsToServer(final String from, final String text, final String number){
Runnable r = new Runnable() {
public void run() {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://ххххх/script.php");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("from", from));
nameValuePairs.add(new BasicNameValuePair("text", text));
nameValuePairs.add(new BasicNameValuePair("number", number));
try
{
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
}
catch (UnsupportedEncodingException e)
{}
try
{
HttpResponse response = httpclient.execute(httppost);
}
catch (IOException e)
{}
};
};
new Thread(r).start();
}
Но почемуто не идет post запрос Изменено Ксакеп (31.03 / 04:56) (всего 1 раз) |
30.03.2015 / 20:37 | |
swank Пользователь Сейчас: Offline
Имя: Виталий Откуда: Киев Регистрация: 07.09.2012
| Я поток может неправильно создаю?
|
30.03.2015 / 21:14 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| swank, ты бы логи лучше расставил и блок catch заполнил чем-нибудь. Вдруг где-то исключение выбрасывает, потому и не посылается запрос. По логам сразу поймёшь. Потом нормально создаёшь. Разрешения прописал на интернет?
__________________
let live |
30.03.2015 / 21:14 | |
swank Пользователь Сейчас: Offline
Имя: Виталий Откуда: Киев Регистрация: 07.09.2012
| А оно походу не может достучаться до сервера бо я юзаю dns проксы cloundflare у них защита от спама и ddosa ж вроде
|
30.03.2015 / 21:17 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| swank, Установи User Agent, может прокатит
|