пятница, 25 октября 2013 г.
четверг, 17 октября 2013 г.
среда, 16 октября 2013 г.
File size limit
//устанавливаем максимальный размер файла
int MAX_IMAGE_SIZE = 2000 * 1024;
String picturePath = ... //абсолютный путь к файлу + имя.расширение
File file = new File(picturePath);
if (file.length() > MAX_IMAGE_SIZE) {
return false;
} else
return true;
среда, 9 октября 2013 г.
Телефонные вызовы. Начало, конец звонка.
Для отслеживания начала и окончания звонка необходимо создать класс, наследуемый от BroadcastReceiver.
А в главном Activity создаем экземпляр класса
в onCreate
дерегистрируем по окончании работы
в onDestroy
Обязательным для возможности совершения телефонного звона является добавление пермишена
public class IncomingCallTracker extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Set keys = bundle.keySet();
for (String key : keys) {
if(key.equals("state"))
Log.i("Timing", key + "="+ bundle.getString(key));
}
}
}
А в главном Activity создаем экземпляр класса
в onCreate
br = new IncomingCallTracker();
IntentFilter intFilt = new IntentFilter("action");
registerReceiver(br, intFilt);
дерегистрируем по окончании работы
в onDestroy
unregisterReceiver(br);
Обязательным для возможности совершения телефонного звона является добавление пермишена
<uses-permission android:name="android.permission.CALL_PHONE" />
Телефонные вызовы. Очистка списка истории вызовов
Метод очистки списка истории вызовов
ну и конечно же, как выяснилось опытным путем, необходимо добавить пермишены)
private void deleteNumber(String number) {
String strUriCalls = "content://call_log/calls";
Uri UriCalls = Uri.parse(strUriCalls);
Cursor c = MainActivity.this.getContentResolver().query(UriCalls, null,
null, null, null);
if (c.getCount() <= 0) {
Toast.makeText(getApplicationContext(), "Call log empty",
Toast.LENGTH_SHORT).show();
}
while (c.moveToNext()) {
String queryString = "NUMBER='" + number + "'";
Log.v("Timing", queryString);
int i = MainActivity.this.getContentResolver().delete(UriCalls,
queryString, null);
if (i >= 1) {
Toast.makeText(getApplicationContext(), "Number deleted",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(),
"No such number in call logs", Toast.LENGTH_SHORT)
.show();
}
}
}
еще лучше вызвать удаление звонка после секундной паузыRunnable mRunnable;
Handler mHandler = new Handler();
mRunnable = new Runnable() {
@Override
public void run() {
deleteNumber(number);
}
};
mHandler.postDelayed(mRunnable, 1000);
ну и конечно же, как выяснилось опытным путем, необходимо добавить пермишены)
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_CALL_LOG" /> <uses-permission android:name="android.permission.WRITE_CALL_LOG" /> <uses-permission android:name="android.permission.CALL_PHONE" />
вторник, 8 октября 2013 г.
Base 64 для Android API 7
Что нужно делать, если вдруг у вас оказались в деле смартфоны с API 7, и если нужно закодировать строку в Base64
http://androidcodemonkey.blogspot.ru/2010/03/how-to-base64-encode-decode-android.html
в коде
http://androidcodemonkey.blogspot.ru/2010/03/how-to-base64-encode-decode-android.html
в коде
BaseCustom64.encodeBytes(str.getBytes()));
понедельник, 7 октября 2013 г.
четверг, 3 октября 2013 г.
ViewPagerIndicator
Привет всем, кого здесь никогда и не было)
Шикарная библиотека для создания пагинатора в приложении Android
https://github.com/JakeWharton/Android-ViewPagerIndicator
Шикарная библиотека для создания пагинатора в приложении Android
https://github.com/JakeWharton/Android-ViewPagerIndicator
Подписаться на:
Комментарии (Atom)