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, может прокатит
   |