четверг, 26 декабря 2013 г.
четверг, 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
Проверяем переменную среды ANDROID_SDK_HOME, у меня почему то была C:\Users\Developer\AppData\Local\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" /><meta-data android:name="com.google.android.gms.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;
}
Источник
Документация 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 г.
Как получить текст ссылки в webview если на ссылку нажали
Как получить текст ссылки в Webview если на неё нажали - shouldOverrideUrlLoading
http://developer.android.com/reference/android/webkit/WebViewClient.html
http://developer.android.com/reference/android/webkit/WebViewClient.html
четверг, 7 ноября 2013 г.
среда, 6 ноября 2013 г.
Библиотека TCP / UDP клиента/сервера для Java
kryonet TCP and UDP client/server library for Java https://code.google.com/p/kryonet/
Многопоточный Сервер в Java
Полезная статья для ишущих как создать многопоточный сервер.
http://tutorials.jenkov.com/java-multithreaded-servers/multithreaded-server.html
http://tutorials.jenkov.com/java-multithreaded-servers/multithreaded-server.html
среда, 23 октября 2013 г.
Выбор папки в Android приложении
Выбор папки или файла в Android приложении через intend
http://stackoverflow.com/questions/11775713/open-default-file-manager-external-memory-in-android
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.
https://github.com/thest1/Android-VKontakte-SDK
ВКонтакте Android SDK предназначен для быстрой интеграции вашего Android-приложения с ВКонтакте API.
Библиотека для MIDI
Библиотека для работы с MIDI
https://code.google.com/p/android-midi-lib/
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
Отсюда 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
четверг, 17 октября 2013 г.
понедельник, 14 октября 2013 г.
Сборник проектов Google Maps v2 с ActionBarSherlock 4.3.1
Google Maps v2 on Android with ActionBarSherlock 4.3.1
- GoogleMapsV2SkeletonV11 (Skeleton project targetted at API level 11 and higher)
- GoogleMapsV2SkeletonV8 (Skeleton project using Support Library targetted at API level 8 and higher)
- GoogleMapsV2WithActionBarSherlock (the complete sample application)
- ActionBarSherlock (The ActionBar we all love, available in this repository for your convenience.)
- google-play-services_lib (The Google Play Services lib, available in this repository for your convenience.)
ИСПОЛЬЗОВАНИЕ ACTIONBAR НА ВСЕХ УСТРОЙСТВАХ
ACTIONBARSHERLOCK — ИЛИ ИСПОЛЬЗОВАНИЕ ACTIONBAR НА ВСЕХ УСТРОЙСТВАХ
Урок как сделать actionbar меню для всех телефонов с использованием ActionBarSherlock.
Урок как сделать actionbar меню для всех телефонов с использованием ActionBarSherlock.
Простой 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
Урок 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. Читая книгу, я поняла, что таким способом возможно создать интерфейс, который будет подстраиваться под разные размеры экранов, но так не получилось. Куда мне смотреть? Как это правильно делается без изобретения велосипеда?!
Подписаться на:
Сообщения (Atom)