Урок 31. Зачем у Intent есть атрибут data. Что такое Uri. Вызываем системные приложения
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
ActivityNotFoundException говорит о том что активити не добавлена в манифест. Добавте в манифест активи
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Оно же по умолчанию создается о_О... по крайней мере я ставил галочку создать activity. Вообщем, добавил и получилась такая картина:
package ru.startandroid.develop.p0311simpleintents;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
Button btnWeb;
Button btnMap;
Button btnCall;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnWeb = (Button) findViewById(R.id.btnWeb);
btnMap = (Button) findViewById(R.id.btnMap);
btnCall = (Button) findViewById(R.id.btnCall);
btnWeb.setOnClickListener(this);
btnMap.setOnClickListener(this);
btnCall.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent;
switch (v.getId()) {
case R.id.btnWeb:
intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://developer.android.com"));
startActivity(intent);
break;
case R.id.btnMap:
intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("geo:55.754283,37.62002"));
startActivity(intent);
break;
case R.id.btnCall:
intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:12345"));
startActivity(intent);
break;
}
}
}
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Нет, я думал у вас активити своя стартуется, так что с манифеста уберите то что вы добавили. Думается мне что вы выбрали апи андроид, а нужно апи с поддержкой гугл сервисов.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Спасибо позже, дома уже попробую (т.к. на работе). Результаты отпишу.rezak90 писал(а):Нет, я думал у вас активити своя стартуется, так что с манифеста уберите то что вы добавили. Думается мне что вы выбрали апи андроид, а нужно апи с поддержкой гугл сервисов.
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Ребята, прошу помощи.
Эмулятор не получает доступ к интернету. При чём даже стандартный браузер не грузит страницы.
В эмуляторе android 4.0 интернет работает, а в android 2.3.3 нет.
Может кто-то сталкивался с этой проблемой?
Эмулятор не получает доступ к интернету. При чём даже стандартный браузер не грузит страницы.
В эмуляторе android 4.0 интернет работает, а в android 2.3.3 нет.
Может кто-то сталкивался с этой проблемой?
-
- Сообщения: 1
- Зарегистрирован: 27 май 2013, 14:33
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Пишу несложный виджет. Подскажите, пожалуйста, как, скажем, при нажатии на кнопку открыть стандартный календарь и будильник?
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
При попытке запустить этот урок на моем Samsung Galaxy S2 4.1.2, Android Device Chooser выдает мне предупреждающий знак на мое устройство (желтый треугольник с восклицательным знаком). Приложение выполняется нормально. Выглядит это так:
.
Тот же знак, если пытаюсь запустить в AVD без GoogleAPI. Что это значит? Мое устройство не имеет GoogleAPI?
.
Тот же знак, если пытаюсь запустить в AVD без GoogleAPI. Что это значит? Мое устройство не имеет GoogleAPI?
POST-запрос
Uri строка может как-то получить атрибуты POST-запроса?
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Устал уже искать по интернету... неужели нельзя запустить файловый менеджер и открыть в нём определенную папку?..
Только 7zipper откликается если в setDataAndType указать неизвестный тип и предлагает открыть как файл или папку..)))
Только 7zipper откликается если в setDataAndType указать неизвестный тип и предлагает открыть как файл или папку..)))
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Как-то так наверное:NeoSvet писал(а):Устал уже искать по интернету... неужели нельзя запустить файловый менеджер и открыть в нём определенную папку?..
Только 7zipper откликается если в setDataAndType указать неизвестный тип и предлагает открыть как файл или папку..)))
[syntax=java]Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory().getPath().toString() + "/Download/"));
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setDataAndType(uri, "*/*");
startActivity(intent);[/syntax]
у меня предложил открыть "File Manager", "ASTRO fm", Галерею, ну и почему-то ему захотелось это открыть в Winampe и в Контактах (последний к слову падают с ошибкой)
Другой способ, можно найти конкретное приложение на устройстве и запустить через него. Например gmail у меня ищется както так:
[syntax=java]final PackageManager pm = getPackageManager();
final List<ResolveInfo> matches = pm.queryIntentActivities(emailIntent, 0);
ResolveInfo best = null;
for (final ResolveInfo info : matches)
if (info.activityInfo.packageName.endsWith(".gm") || info.activityInfo.name.toLowerCase().contains("gmail"))
best = info;
if (best != null) {
emailIntent.setClassName(best.activityInfo.packageName, best.activityInfo.name);
startActivity(emailIntent);
}else{
//говорим юзеру, что данной программы нет
}[/syntax]
чую сейчас закидаю камнями=)
upd:
а вообще все было не так, а както так:
http://stackoverflow.com/questions/1716 ... -in-a-file
см зеленую галочку.
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Чтобы не было лишнего, надо указать тип "file/*"klblk писал(а): у меня предложил открыть "File Manager", "ASTRO fm", Галерею, ну и почему-то ему захотелось это открыть в Winampe и в Контактах (последний к слову падают с ошибкой)
В итоге у меня получилось так:
Код: Выделить всё
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setDataAndType(Uri.fromFile(new File(path), "file/*");
startActivity(intent);
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
При попытке в номер включить решетку(#) ничего не выходит не подскажите как добиться этого?
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
а почему при запросе поиска на карте zoom игнорируется? Они вместе никак не могут работать чтоли?
тут читал
Код: Выделить всё
intent.setData(Uri.parse("geo:0,0,longitude?q=Москва, Красная площадь&z=2"));
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Такой вопрос:
Нужно из класса, не являющегося Activity, вызвать системное приложение. В гугле нашел только как можно вызвать другое Activity.
Как это сделать?
Нужно из класса, не являющегося Activity, вызвать системное приложение. В гугле нашел только как можно вызвать другое Activity.
Как это сделать?
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Здравствуйте.
Начинаю изучать программирование под Android и столкнулся с проблемой.
В ListView выводится список, который формируется занесением в БД имени и номера.
В каждом пункте списка реализовано отображение имени абонента и номера на который следует отправить смс. При нажатии на пункт списка открывается родной смс-менеджер с уже заданным шаблоном сообщения и номером отправки.
Суть проблемы: есть код
"sms:123" - явно задается номер, на который будет отправлена смс.
Как сделать, что бы номер брался из БД т.е. тот, который отображается в нажатом пункте списка?
Начинаю изучать программирование под Android и столкнулся с проблемой.
В ListView выводится список, который формируется занесением в БД имени и номера.
В каждом пункте списка реализовано отображение имени абонента и номера на который следует отправить смс. При нажатии на пункт списка открывается родной смс-менеджер с уже заданным шаблоном сообщения и номером отправки.
Суть проблемы: есть код
Код: Выделить всё
lvNames.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent smsIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms:123"));
smsIntent.putExtra("sms_body");
startActivity(smsIntent);
Log.d("LOG_TAG", "itemClick: position = " + position + ", id = " + id);
}
});
Как сделать, что бы номер брался из БД т.е. тот, который отображается в нажатом пункте списка?
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
формируй переменную-строку и записывай ее в качестве параметра в parse
что-то уж совсем вопрос.. хм
что-то уж совсем вопрос.. хм
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Спасибо конечно, но хотелось бы поподробнее. Всего-то 4й день этим всем занимаюсь =(
Прописываю:
tvSPhn это id вью, в которомы выводится номер телефона.
Приложение вываливается с ошибкой.
Подскажите как получить данные из поля БД - номер телефона
Прописываю:
Код: Выделить всё
...
TextView tvSPhn;
...
String number;
...
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
number = tvSPhn.getText().toString();
Intent smsIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms:" + number));
smsIntent.putExtra("sms_body", "текс");
startActivity(smsIntent);
...
Приложение вываливается с ошибкой.
Подскажите как получить данные из поля БД - номер телефона
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Весь день долбался, так и не решил проблему.
Может кто подскажет?
В лог выводится позиция в списке и ID нажатого элемента в ListView.
Собственно вопрос: Как,зная ID, вывести в Uri.parse("sms:" + SPhn ) и smsIntent.putExtra("sms_body", "какой то текст" + YPhn ) вместо SPhn и YPhn соответствующие значения из БД? Кто может хотя бы намекнуть, куда копать? Я примерно понимаю что надо прописать STRING number = ???
и вместо SPhn и YPhn прописать number, но что присваивать переменной понятия не имею.
Может кто подскажет?
Код: Выделить всё
// открываем подключение к БД
db = new DB(this);
db.open();
// формируем столбцы сопоставления
String[] from = new String[] { DB.COLUMN_IMG, DB.COLUMN_Name, DB.COLUMN_YPhn, DB.COLUMN_SPhn};
int[] to = new int[] { R.id.ivImg, R.id.tvName, R.id.tvYPhn, R.id.tvSPhn };
// создааем адаптер и настраиваем список
scAdapter = new SimpleCursorAdapter(this, R.layout.item, null, from, to, 0);
lvNames = (ListView) findViewById(R.id.lvNames);
lvNames.setAdapter(scAdapter);
lvNames.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View itemClicked, int position, long id) {
Intent smsIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms:" + SPhn ));
smsIntent.putExtra("sms_body", "какой то текст" + YPhn );
startActivity(smsIntent);
Log.d("r/rwBD", "itemClick: position = " + position + ", id = " + id );
}
});
Собственно вопрос: Как,зная ID, вывести в Uri.parse("sms:" + SPhn ) и smsIntent.putExtra("sms_body", "какой то текст" + YPhn ) вместо SPhn и YPhn соответствующие значения из БД? Кто может хотя бы намекнуть, куда копать? Я примерно понимаю что надо прописать STRING number = ???
Код: Выделить всё
public void onItemClick(AdapterView<?> parent, View itemClicked, int position, long id) {
STRING number =
Intent smsIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms:" + SPhn ));
smsIntent.putExtra("sms_body", "какой то текст" + YPhn );
startActivity(smsIntent);
Log.d("r/rwBD", "itemClick: position = " + position + ", id = " + id );
}
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
конечно. В уроках полно упоминаний как обратиться к ячейке курсора.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri
Спасибо за пинок =)
Сегодня разобрался. Не знаю, костыль или нет, главное что работает.
Может кому пригодится.
Сегодня разобрался. Не знаю, костыль или нет, главное что работает.
Может кому пригодится.
Код: Выделить всё
public void onItemClick(AdapterView<?> parent, View itemClicked, int position, long id) {
Log.d("r/rwBD", "--- Row in table: ---");
// делаем запрос всех данных из таблицы mytable, получаем Cursor
Cursor cursor = db.getAllData();
// позиция курсора = позиции итема
cursor.moveToPosition(position);
// определяем номера столбцов по имени в выборке
int YPhnColIndex = cursor.getColumnIndex("YPhn");
int SPhnColIndex = cursor.getColumnIndex("SPhn");
String SPHN = cursor.getString(SPhnColIndex);
String YPHN = cursor.getString(YPhnColIndex);
Intent smsIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms:" + SPHN ));
smsIntent.putExtra("sms_body", "какой то текст " + YPHN );
startActivity(smsIntent);
// получаем значения по номерам столбцов и пишем в лог
Log.d("r/rwBD", " YPhn = " + YPHN + ", SPhn = " + SPHN);
cursor.close();