Урок 31. Зачем у Intent есть атрибут data. Что такое Uri. Вызываем системные приложения

Обсуждение уроков
Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение rezak90 » 20 окт 2012, 17:53

Это в манифесте есть?
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
R.id.team
Политика на форуме запрещена

Step
Сообщения: 2
Зарегистрирован: 20 окт 2012, 17:10

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение Step » 20 окт 2012, 18:00

строчки <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> в манифесте не было,однако ее добавление ничего не дало. Проблема скорее не в программе, потому что у меня даже обычный браузер в AVD страницы не показывает :(

Sevak
Сообщения: 6
Зарегистрирован: 08 авг 2012, 14:41

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение Sevak » 29 окт 2012, 22:54

Здравствуйте! Почему не хочет открывать карту, крашится?
10-29 19:47:34.047: E/AndroidRuntime(360): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=geo:55.754283,37.62002 }

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение rezak90 » 29 окт 2012, 23:56

Sevak писал(а):Здравствуйте! Почему не хочет открывать карту, крашится?
10-29 19:47:34.047: E/AndroidRuntime(360): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=geo:55.754283,37.62002 }
в манифесте забыли добавить активити
R.id.team
Политика на форуме запрещена

Sevak
Сообщения: 6
Зарегистрирован: 08 авг 2012, 14:41

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение Sevak » 30 окт 2012, 11:09

rezak90 писал(а):
Sevak писал(а):Здравствуйте! Почему не хочет открывать карту, крашится?
10-29 19:47:34.047: E/AndroidRuntime(360): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=geo:55.754283,37.62002 }
в манифесте забыли добавить активити
так активити то всего один, что еще добавлять? страничку в инете открывает и звонилку тоже, а на карте крашится!
попробую заново создать проект с google api, может там накосячил

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение rezak90 » 30 окт 2012, 11:20

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

Код: Выделить всё

<category android:name="android.intent.category.DEFAULT" />
R.id.team
Политика на форуме запрещена

Sevak
Сообщения: 6
Зарегистрирован: 08 авг 2012, 14:41

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение Sevak » 30 окт 2012, 11:36

rezak90 писал(а):значит в манифесте не все параметры для активити есть, возможно нету:

Код: Выделить всё

<category android:name="android.intent.category.DEFAULT" />
не знаю почему, но при создании проекта не импортировалась папочка Google APIs, попробовал заново создать проект и все заработало)

Аватара пользователя
WOLVERINE
Сообщения: 8
Зарегистрирован: 28 ноя 2012, 15:13
Откуда: Минск
Контактная информация:

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение WOLVERINE » 17 дек 2012, 14:27

подскажите с чем трабл может быть

код ошибки:

Код: Выделить всё

12-17 11:24:33.172: E/CheckinTask(196): Checkin failed: https://android.clients.google.com/checkin (request #0)
12-17 11:24:33.172: E/CheckinTask(196): java.net.UnknownHostException: android.clients.google.com
12-17 11:24:33.172: E/CheckinTask(196): 	at java.net.InetAddress.lookupHostByName(InetAddress.java:506)
12-17 11:24:33.172: E/CheckinTask(196): 	at java.net.InetAddress.getAllByNameImpl(InetAddress.java:294)
12-17 11:24:33.172: E/CheckinTask(196): 	at java.net.InetAddress.getAllByName(InetAddress.java:256)
12-17 11:24:33.172: E/CheckinTask(196): 	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136)
12-17 11:24:33.172: E/CheckinTask(196): 	at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
12-17 11:24:33.172: E/CheckinTask(196): 	at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
12-17 11:24:33.172: E/CheckinTask(196): 	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359)
12-17 11:24:33.172: E/CheckinTask(196): 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
12-17 11:24:33.172: E/CheckinTask(196): 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
12-17 11:24:33.172: E/CheckinTask(196): 	at android.net.http.AndroidHttpClient.execute(AndroidHttpClient.java:248)
12-17 11:24:33.172: E/CheckinTask(196): 	at com.google.android.common.http.GoogleHttpClient.executeWithoutRewriting(GoogleHttpClient.java:203)
12-17 11:24:33.172: E/CheckinTask(196): 	at com.google.android.common.http.GoogleHttpClient.execute(GoogleHttpClient.java:245)
12-17 11:24:33.172: E/CheckinTask(196): 	at com.google.android.common.http.GoogleHttpClient.execute(GoogleHttpClient.java:313)
12-17 11:24:33.172: E/CheckinTask(196): 	at com.google.android.gsf.checkin.CheckinTask.sendRequest(CheckinTask.java:254)
12-17 11:24:33.172: E/CheckinTask(196): 	at com.google.android.gsf.checkin.CheckinTask.doInBackground(CheckinTask.java:150)
12-17 11:24:33.172: E/CheckinTask(196): 	at com.google.android.gsf.checkin.CheckinService$1.doInBackground(CheckinService.java:221)
12-17 11:24:33.172: E/CheckinTask(196): 	at com.google.android.gsf.checkin.CheckinService$1.doInBackground(CheckinService.java:214)
12-17 11:24:33.172: E/CheckinTask(196): 	at android.os.AsyncTask$2.call(AsyncTask.java:185)
12-17 11:24:33.172: E/CheckinTask(196): 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
12-17 11:24:33.172: E/CheckinTask(196): 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
12-17 11:24:33.172: E/CheckinTask(196): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
12-17 11:24:33.172: E/CheckinTask(196): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
12-17 11:24:33.172: E/CheckinTask(196): 	at java.lang.Thread.run(Thread.java:1019)
после долгой загрузки выкидывает подобную ошибку:
Изображение

стоят данные разрешения:

Код: Выделить всё

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
в браузере страницы грузятся

неужели надо получить код для гугл карт?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение rezak90 » 17 дек 2012, 14:47

с эмулятора запускаетесь или с телефона?
R.id.team
Политика на форуме запрещена

Аватара пользователя
WOLVERINE
Сообщения: 8
Зарегистрирован: 28 ноя 2012, 15:13
Откуда: Минск
Контактная информация:

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение WOLVERINE » 17 дек 2012, 14:54

rezak90 писал(а):с эмулятора запускаетесь или с телефона?
с эмулятора

add: на компьютере интернет через прокси, но в настройках эмулятора прописал адрес и порт, после чего начал работать браузер, но не карты
add2: на телефоне оно просто вылетает

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение rezak90 » 17 дек 2012, 20:18

на компьютере интернет через прокси, но в настройках эмулятора прописал адрес и порт, после чего начал работать браузер, но не карты
где прокси прописывали? в браузере или где то в настройках андроида?
на телефоне оно просто вылетает
какой лог ошибок? такой же что и выше?

P.S. покажите код где происходит данная ошибка.
R.id.team
Политика на форуме запрещена

Аватара пользователя
WOLVERINE
Сообщения: 8
Зарегистрирован: 28 ноя 2012, 15:13
Откуда: Минск
Контактная информация:

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение WOLVERINE » 17 дек 2012, 22:13

rezak90 писал(а):где прокси прописывали? в браузере или где то в настройках андроида?

какой лог ошибок? такой же что и выше?

P.S. покажите код где происходит данная ошибка.
прокси в настройках андроида прописывал тут:
Settings - Wireless & networks - Mobile networks - Access point Names
и тут создавал свою точку
Изображение

код такой же, как и в уроке. приду завтра на работу - скину полностью

add:
MainActivity.java

Код: Выделить всё

package com.example.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.activity_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;
		}
	}
}
activity_main.xml

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/btnWeb"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:text="Web" >
    </Button>

    <Button
        android:id="@+id/btnMap"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:text="Map" >
    </Button>

    <Button
        android:id="@+id/btnCall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:text="Call" >
    </Button>

</LinearLayout>
AndroidManifest.xml

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.p0311simpleintents"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.p0311simpleintents.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

vonavy14
Сообщения: 1
Зарегистрирован: 09 янв 2013, 16:32

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение vonavy14 » 09 янв 2013, 16:39

Также в файле манифеста приложения, на вкладке Permission добавьте элемент Uses Permission и справа в поле Name выберите android.permission.INTERNET. Это даст приложению доступ в интернет. Правда у меня почему-то и без этого все работает … Пока не понял почему.
Все дело в том, что в приложении ни разу не используются методы для соединения с сервером. В примере вы просто запускаете activities других приложений, в манифестах которых (приложений) разрешение выхода в сеть есть.

Pandemia
Сообщения: 1
Зарегистрирован: 13 янв 2013, 14:23

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение Pandemia » 13 янв 2013, 16:06

не поможете с установкой маркеров в этом приложении по своим координатам?!

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение damager82 » 16 янв 2013, 10:10

Pandemia писал(а):не поможете с установкой маркеров в этом приложении по своим координатам?!
Посмотрите эту статью - http://mobiforge.com/developing/story/u ... ps-android
И создавайте отдельную тему, если будут вопросы.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

buddypetrovich
Сообщения: 2
Зарегистрирован: 24 фев 2013, 15:59

Re: Урок 31. Телефонный звонок без нажатия на значок трубки

Сообщение buddypetrovich » 24 фев 2013, 16:12

Здесь уже спрашивали, но при нажатии на кнопку "Call" появляется экран с номером телефона, а набор номера не происходит без нажатия на трубку. Возможно ли сразу набрать номер? (android.permission.CALL_PHONE добавлен!)

insider
Сообщения: 13
Зарегистрирован: 30 ноя 2012, 19:40

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение insider » 24 фев 2013, 17:13

Когда выбираем Target SDK для приложения - в чем отличие между "Android xxx - API Level xx" и "Google APIs - API Level XX". Под первым не будут работать гугловские приложения, или что? Если создать этот урок с Target SDK обычного Android (не Google APIs), то он не будет работать?

insider
Сообщения: 13
Зарегистрирован: 30 ноя 2012, 19:40

Re: Урок 31. Телефонный звонок без нажатия на значок трубки

Сообщение insider » 24 фев 2013, 17:15

buddypetrovich
buddypetrovich писал(а):Здесь уже спрашивали, но при нажатии на кнопку "Call" появляется экран с номером телефона, а набор номера не происходит без нажатия на трубку. Возможно ли сразу набрать номер? (android.permission.CALL_PHONE добавлен!)
Меняете action в вашем intent с ACTION_DIAL на ACTION_CALL. Вашему приложению в манифесте даете Uses Permission android.permission.CALL_PHONE. По нажатию кнопки теперь должен идти именно вызов.

buddypetrovich
Сообщения: 2
Зарегистрирован: 24 фев 2013, 15:59

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение buddypetrovich » 24 фев 2013, 18:36

insider
Спасибо большое, работает!

Logos
Сообщения: 3
Зарегистрирован: 03 апр 2013, 11:09

Re: Урок 31. Зачем у Intent есть атрибут data. Что такое Uri

Сообщение Logos » 03 апр 2013, 12:09

Всем привет!

Подскажите плиз, как исправить баг с кнопкой map? Вот лог:
04-03 04:23:17.517: I/Process(350): Sending signal. PID: 350 SIG: 9
04-03 04:28:54.897: D/AndroidRuntime(413): Shutting down VM
04-03 04:28:54.897: W/dalvikvm(413): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-03 04:28:54.907: E/AndroidRuntime(413): FATAL EXCEPTION: main
04-03 04:28:54.907: E/AndroidRuntime(413): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=geo:55.754283,37.62002 }
04-03 04:28:54.907: E/AndroidRuntime(413): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1409)
04-03 04:28:54.907: E/AndroidRuntime(413): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379)
04-03 04:28:54.907: E/AndroidRuntime(413): at android.app.Activity.startActivityForResult(Activity.java:2827)
04-03 04:28:54.907: E/AndroidRuntime(413): at android.app.Activity.startActivity(Activity.java:2933)
04-03 04:28:54.907: E/AndroidRuntime(413): at ru.startandroid.develop.p0311simpleintents.MainActivity.onClick(MainActivity.java:42)
04-03 04:28:54.907: E/AndroidRuntime(413): at android.view.View.performClick(View.java:2485)
04-03 04:28:54.907: E/AndroidRuntime(413): at android.view.View$PerformClick.run(View.java:9080)
04-03 04:28:54.907: E/AndroidRuntime(413): at android.os.Handler.handleCallback(Handler.java:587)
04-03 04:28:54.907: E/AndroidRuntime(413): at android.os.Handler.dispatchMessage(Handler.java:92)
04-03 04:28:54.907: E/AndroidRuntime(413): at android.os.Looper.loop(Looper.java:123)
04-03 04:28:54.907: E/AndroidRuntime(413): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-03 04:28:54.907: E/AndroidRuntime(413): at java.lang.reflect.Method.invokeNative(Native Method)
04-03 04:28:54.907: E/AndroidRuntime(413): at java.lang.reflect.Method.invoke(Method.java:507)
04-03 04:28:54.907: E/AndroidRuntime(413): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-03 04:28:54.907: E/AndroidRuntime(413): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-03 04:28:54.907: E/AndroidRuntime(413): at dalvik.system.NativeStart.main(Native Method)
Т.е. первая и третья кнопки работают успешно, а вторая (карты) при нажатии - вылетает из программы. Эмулятор был запущен AVD_233. В самом начале, кода прописываем название проекта - там все поставил для android 2.3.3.

П.С. Автору огромное Спасибо за труд!

Ответить