понедельник, 17 сентября 2012 г.

ВКонтакте Android SDK

SDK опубликовано на гитхабе https://github.com/thest1/Android-VKontakte-SDK. Распространяется по лицензии MIT. Вы можете её использовать в любых проектах, в том числе коммерческих. Можете её модифицировать. Ссылку на первоисточник желательно размещать по возможности.

Быстро понять принципы работы библиотеки вам поможет демо-проект AndroidVkSdkSample. В нём реализована авторизация и, в качестве примера, отправка записи на свою стену.

Чтобы подключить библиотеку к своему проекту, нужно выполнить следующие шаги:

Импортировать проект AndroidVkSdk в Eclipse. AndroidVkSdk реализован как Android Library Project.
Добавить в своём проекте ссылку на AndroidVkSdk.
Убедиться что у вашего приложения есть разрешение на доступ в Интернет

<uses-permission android:name="android.permission.INTERNET"/>

Создать url авторизации и открыть его в WebView

String url=Auth.getUrl(API_ID, Auth.getSettings());
webview.loadUrl(url);

 Здесь в качестве API_ID должен быть указан ID вашего приложения, созданного на http://vk.com/developers.php
Дождаться когда webview будет перенаправлен на Auth.redirect_url. Распарсить redirect_url чтобы получить из него access_token. Для примера смотрите как это сделано в LoginActivity.java в проекте AndroidVkSdkSample.

String[] auth=Auth.parseRedirectUrl(url);

Создать объект Api для выполнения запросов к серверу ВКонтакте:

API api=new Api(access_token, API_ID);

Теперь можно выполнять запросы к серверу, например так:

api.createWallPost(user_id, text, null, null, false, false, false, null, null);

Разработка иконок под Android

Нашел отличный сайт для генерации различных иконок, которые потребуются при создании приложения под android.
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html 

Создание SearchView с использованием SherlockActionBar

В этом посте рассказывается как создать SearchView с использованием библиотеки SherlockActionBar.
Класс MainActivity должен быть наследником класса  SherlockActivity и интерфейса  OnQueryTextListener.
public class MainActivity extends SherlockActivity implements SearchView.OnQueryTextListener{

Далее создаем переменную типа  SearchView.
SearchView searchView;

В методе  onCreateOptionsMenu создаем searchItem, который будет частью нашего экшен бара. В методе add константа SEARCH является уникальным индитификатором.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuItem searchItem = menu.add(Menu.NONE, SEARCH, Menu.NONE, R.string.search);
searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM
| MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
searchView = new SearchView(getApplicationContext());
searchItem.setActionView(searchView);
 searchView.setOnQueryTextListener(this);
return true;
}

Следующие два метода необходимы, т.к. мы унаследовали интерфейс  OnQueryTextListener.

public boolean onQueryTextChange(String newText) {
return false;
}

public boolean onQueryTextSubmit(String query) {
return true;
}