четверг, 5 декабря 2013 г.

Подключение Google Play Services к проекту в Android Studio


Проверяем установлены или нет в Android SDK Google Play services и  Google Repository.
Проверяем переменную среды ANDROID_SDK_HOME, у меня почему то была  C:\Users\Developer\AppData\Local\Android\android-studio\sdk
вместо 
C:\Program Files\Android\android-studio\sdk.

Смотрим версию Google Play services в папке Android SDK:
C:\Program Files\Android\android-studio\sdk\extras\google\m2repository 

Видим, что последняя версия 4.0.30.
Открываем  в Android Studio файл build.gradle проекта. Ищем dependencies:
dependencies {
 compile 'com.android.support:appcompat-v7:+' 
}
Дописываем до такого вида:
dependencies {
 compile 'com.android.support:appcompat-v7:+' 
 compile 'com.google.android.gms:play-services:4.0.30' 
}
Где указываем последнюю версию "4.0.30".
Сохраняем и нажимаем значок Sync Project with Gradle Files. (расположен левее значков AVD manager и SDK manager).

Открываем AndroidManifest.xml и в секцию <application> добавляем наследника:
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

После чего должен нормально работать import com.google.android.gms. 

пятница, 29 ноября 2013 г.

Печать текста в Android

Печать текста в Android  через Google Cloud Print
Документация Google

Код:
@Override
    protected Void doInBackground(Void... params) {

        try {
            DefaultHttpClient httpclient = new DefaultHttpClient();

            String user = "user@gmail.com";
            String pass = "password";
            String source = "Cloud%20Printing%20Test";

            HttpGet authGet = new HttpGet(
                    "https://www.google.com/accounts/ClientLogin?accountType=HOSTED_OR_GOOGLE&Email="
                            + user
                            + "&Passwd="
                            + pass
                            + "&service=cloudprint&source=" + source);

            HttpResponse httpResponse;

            httpResponse = httpclient.execute(authGet);

            String authResponse = EntityUtils
                    .toString(httpResponse.getEntity());
            String authKey = authResponse.substring(authResponse
                    .indexOf("Auth=") + 5);
            authKey = authKey.replace("\n", "");

            MyLog.d(TAG, "Auth key: " + authKey);

            HttpPost printPost = new HttpPost(
                    "https://www.google.com/cloudprint/submit?output=json");
            printPost.setHeader("Authorization", "GoogleLogin auth=" + authKey);
            printPost.setHeader("X-CloudPrint-Proxy", source);
           
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("printerid", "ID"));
            nameValuePairs.add(new BasicNameValuePair("title", "TEST"));
            nameValuePairs.add(new BasicNameValuePair("capabilities", "{capabilities=[]}"));
//            nameValuePairs.add(new BasicNameValuePair("content", getContent()));
//            nameValuePairs.add(new BasicNameValuePair("contentType", "application/pdf"));
            nameValuePairs.add(new BasicNameValuePair("content", "123"));
            nameValuePairs.add(new BasicNameValuePair("contentType", "text/plain"));
            printPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
           
            HttpResponse printResponse = httpclient.execute(printPost);
            String lol = EntityUtils.toString(printResponse.getEntity());

        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    return null;
}
Источник

вторник, 26 ноября 2013 г.

среда, 23 октября 2013 г.

Выбор папки в Android приложении

Выбор папки или файла в Android приложении через intend
http://stackoverflow.com/questions/11775713/open-default-file-manager-external-memory-in-android

пятница, 18 октября 2013 г.

SDK для Вконтакте

SDK для Вконтакте
https://github.com/thest1/Android-VKontakte-SDK
ВКонтакте Android SDK предназначен для быстрой интеграции вашего Android-приложения с ВКонтакте API.

Библиотека для MIDI

Библиотека для работы с  MIDI
https://code.google.com/p/android-midi-lib/
... for use with Android applications that do not have access to Java's javax.sound.midi library. However, it is a stand-alone Java library with no Android-specific dependencies or considerations.
This code provides an interface to read, manipulate, and write MIDI files. "Playback" is supported as a real-time event dispatch system. This library does NOT include actual audio playback or device interfacing.

Hint для spinner

Как сделать hint для spinner
Отсюда http://stackoverflow.com/questions/6602339/android-spinner-hint
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), R.layout.sherlock_spinner_item) {

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View v = super.getView(position, convertView, parent);
        if (position == getCount()) {
            ((TextView)v.findViewById(android.R.id.text1)).setText("");
            ((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount())); //"Hint to be displayed"
        }

        return v;
    }       

    @Override
    public int getCount() {
        return super.getCount()-1; // you dont display last item. It is used as hint.
    }

};

adapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
adapter.add("Item 1");
adapter.add("Item 2");
adapter.add("Hint to be displayed");

spinner.setSelection(adapter.getCount()); //display hint

понедельник, 14 октября 2013 г.

Сборник проектов Google Maps v2 с ActionBarSherlock 4.3.1

Google Maps v2 on Android with ActionBarSherlock 4.3.1

Как сделать клавиатуру с более чем одним символом на клавише.

ИСПОЛЬЗОВАНИЕ ACTIONBAR НА ВСЕХ УСТРОЙСТВАХ

ACTIONBARSHERLOCK — ИЛИ ИСПОЛЬЗОВАНИЕ ACTIONBAR НА ВСЕХ УСТРОЙСТВАХ
Урок как сделать actionbar меню для всех телефонов с использованием ActionBarSherlock.

Как добавить библиотеки в Android Studio. Видеоурок.


Простой RSS reader. Урок.

Rss Reader App Android Tutorial  посвящен разаработке простого RSS ридера.
Урок 1: ListView and ArrayAdapter
Расматривается простой пример ListView и ArrayAdapter.
Кастомизация List Cell View с Value Object.
Улучшение производительности Android ListView
Урок 2: Load Data by HTTP Request in Android
Загрузка данных по  HTTP Request из инернет в Андроид. Загрузка в фоновом потоке: отличия между Asynctaskи Thread в Android.
Урок 3. Parse XML in Android
Использование ExpatPullParser
Урок 4. Drag to Refresh in ListView

Адаптирование приложения под разные экраны

 Адаптирование под разные экраны
Создала приложение под диагональ экрана 4,7 с использованием dp. Читая книгу, я поняла, что таким способом возможно создать интерфейс, который будет подстраиваться под разные размеры экранов, но так не получилось. Куда мне смотреть? Как это правильно делается без изобретения велосипеда?!