Заготовка для работы с SQLite в Android

Маленький шаблон, для работы с SQLite:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public class DBAdapter 
{
    private static final String DATABASE_NAME = "test";
    private static final int DATABASE_VERSION = 1;
 
    private final Context context;
    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;
 
    public DBAdapter(Context ctx)
    {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }
    private static class DatabaseHelper extends SQLiteOpenHelper
    {
        DatabaseHelper(Context context)
        {
            super(context,DATABASE_NAME, null, DATABASE_VERSION);
        }
 
        @Override
        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub
 
        }
 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // TODO Auto-generated method stub
 
        }
    }
    public SQLiteDatabase GetDataBaseOpen() throws SQLException
    {
        return this.db;
    }
    public DBAdapter Open() throws SQLiteException
    {
        db = DBHelper.getWritableDatabase();
        return this;
    }
    public DBAdapter OpenForRead() throws SQLiteException
    {
        db = DBHelper.getReadableDatabase();
        return this;
    }
    public void Close() 
    {
        DBHelper.close();
    }
}
public class DBAdapter 
{
	private static final String DATABASE_NAME = "test";
	private static final int DATABASE_VERSION = 1;

	private final Context context;
	private DatabaseHelper DBHelper;
	private SQLiteDatabase db;

	public DBAdapter(Context ctx)
	{
		this.context = ctx;
		DBHelper = new DatabaseHelper(context);
	}
	private static class DatabaseHelper extends SQLiteOpenHelper
	{
		DatabaseHelper(Context context)
		{
			super(context,DATABASE_NAME, null, DATABASE_VERSION);
		}

		@Override
		public void onCreate(SQLiteDatabase db) {
			// TODO Auto-generated method stub

		}

		@Override
		public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
			// TODO Auto-generated method stub

		}
	}
	public SQLiteDatabase GetDataBaseOpen() throws SQLException
	{
		return this.db;
	}
	public DBAdapter Open() throws SQLiteException
	{
		db = DBHelper.getWritableDatabase();
		return this;
	}
	public DBAdapter OpenForRead() throws SQLiteException
	{
		db = DBHelper.getReadableDatabase();
		return this;
	}
	public void Close() 
	{
		DBHelper.close();
	}
}

Как получить SSID Wi-Fi сети из Android-приложения

Возникла необходимость получить SSID сети из Android приложения. Облазил StackOverflow вдоль и поперек… Ответ помечен как правильный. но я имплементирую код который дан и… приложение на нем останавливается. Долго я мучился. Оказывается, нужно добавить Permission…, а лучше два. Код почти полностью из ответа, но у меня он полностью не заработал, так что пришлось удалить ту часть, которая не работает:

1
2
3
4
5
6
7
8
9
10
11
12
13
private String getCurrentSsid(Context context) {
          String ssid = null;
          ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
          NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
          if (networkInfo.isConnected()) {
            final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
            final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
            if (connectionInfo != null) {
              ssid = connectionInfo.getSSID();
            }
          }
          return ssid;
        }
private String getCurrentSsid(Context context) {
		  String ssid = null;
		  ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
		  NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
		  if (networkInfo.isConnected()) {
		    final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
		    final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
		    if (connectionInfo != null) {
		      ssid = connectionInfo.getSSID();
		    }
		  }
		  return ssid;
		}

Метод возвращает название SSID (строка) или null если wi-fi не подключен.

Для работы требуются следующие разрешения:

1
2
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Как установить APK на телефон?

Бывает, когда нужно установить apk-файл на телефон. Есть простой способ сделать это при помощи SDK.

Команда в CMD будет такой:

adb.exe install <filename>.apk

Просто до безобразия, но работает. Есть несколько НО.

  1. На телефоне должна быть включена отладка по USB.
  2. Телефон должен быть определен SDK. У моего HTC была проблема…
  3. Нужен SDK или его часть — про это подробнее потом расскажу.

Java: GUI приложение для работы с текстовыми файлами

Привет, читатель :)

Дали вот такое задание, для написание на Java и обязательно в среде NetBeans:

Написать программу, которая должна уметь:

  1. Открывать каталог, типа С:\users\
  2. Выводить из каталога в Combobox файлы
  3. По нажатию кнопки «открыть» открывать в редактор текстовый файл из каталога
  4. При изменении файла и нажатии на кнопку «сохранить» сохранять изменения в том же файле который был открыт

Можно сказать, что я начал и закончил интерфейсом. А ну и еще одно — эта инструкция не будет такой подробной как некотрые ранее, так как мне кажется что тут все примитивно.

Continue reading

Google Play: Developer Console. Alpha\Beta Tesring

На последнем Google I/O 2013 Google же анонсировал возможность Alpha\Beta — тестирования приложений в магазине Google Play. Штука интересная, нужная, но при попытке выложить так приложение у меня возникли дикие проблемы, которые удалось решить не сразу, поэтому я надеюсь, что этот материал будет полезен начинающим разработчикам, тем более, что материала по данной теме на русском языке я не нашел. Есть только небольшая заметка на stackoverflow.com

Выкладка Бета\Альфа-версии отличается от релизной выкладки тем, что:

  1. Приложение недоступно по средствам поиска в Google Play.
  2. Если это единственное приложение у разработчика, то его страницы просто нет.
  3. Приложение доступно для тестирования только пользователям по приглашению. Об этом ниже.

На странице «Файлы APK» Появляется блок «Бета-тестировщики», который внутри выглядит так:

betagoogle

Сразу после публикации есть ссылка, но при переходе на нее (и авторизации на Google) получаем ошибку 404. Все потому что нужно сначала создать сообщество на Google Plus и пригласить туда людей, а уж после этого можно давать им эту ссылку. Создать сообщество можно тут. После этого ссылка начнет открываться и тестеры смогут увидить примерно такую картинку (название приложение, группы и автора закрыты):

betagoogle2

После нажатия кнопки «Учавствовать в тестировании» у пользователя появляется возможность скачать приложение.

При этом стоит заметить, что приложение добавляются на Google Play несколько часов… Поэтому сначала ссылка будет вести в пустоту, потом оно появится в Google Play, но при попытке скачать приложение телефон будет говорить: «приложение не найдено». Это нормальное поведение. Нужно еще подожать часа два-три.

Очень кратко. Надеюсь понятно. Если есть вопросы, вы как обычно можете задать их в комментариях.