<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=Processing%3A%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8%2FProcessing_for_Android%2F%D0%9C%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F</id>
	<title>Processing:Библиотеки/Processing for Android/Месторасположение и разрешения - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=Processing%3A%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8%2FProcessing_for_Android%2F%D0%9C%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F"/>
	<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Processing:%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8/Processing_for_Android/%D0%9C%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F&amp;action=history"/>
	<updated>2026-04-22T11:24:56Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Processing:%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8/Processing_for_Android/%D0%9C%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=7734635&amp;oldid=prev</id>
		<title>EducationBot в 07:56, 20 мая 2023</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Processing:%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8/Processing_for_Android/%D0%9C%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=7734635&amp;oldid=prev"/>
		<updated>2023-05-20T07:56:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 11:56, 20 мая 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l18&quot;&gt;Строка 18:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 18:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Базовая структура скетча, получающего доступ к данным о месторасположении, очень похожа на ту, которую мы уже видели в скетчах-примерах для работы с [wikihandbk.com/wiki/Processing:Библиотеки/Processing_for_Android/Руководства/Использование_датчиков другими датчиками]. Вначале мы берем менеджера месторасположения из контекста приложения, «живых» обоев или циферблата при помощи функции surface.getContext() (если версия режима программирования Android – 4.0 и выше) или просто считываем указатель на активность при помощи функции getActivity() (если у вас версия 3). После этого мы подключаем «слушателя» к менеджеру:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Базовая структура скетча, получающего доступ к данным о месторасположении, очень похожа на ту, которую мы уже видели в скетчах-примерах для работы с [wikihandbk.com/wiki/Processing:Библиотеки/Processing_for_Android/Руководства/Использование_датчиков другими датчиками]. Вначале мы берем менеджера месторасположения из контекста приложения, «живых» обоев или циферблата при помощи функции surface.getContext() (если версия режима программирования Android – 4.0 и выше) или просто считываем указатель на активность при помощи функции getActivity() (если у вас версия 3). После этого мы подключаем «слушателя» к менеджеру:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; enclose=&quot;div&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import android.content.Context;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import android.content.Context;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import android.location.Location;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;import android.location.Location;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l78&quot;&gt;Строка 78:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 78:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Переменная location, которую мы получаем в «слушателе» данных о локации, содержит всю информацию, необходимую для указания месторасположения при помощи широты и долготы:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Переменная location, которую мы получаем в «слушателе» данных о локации, содержит всю информацию, необходимую для указания месторасположения при помощи широты и долготы:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; enclose=&quot;div&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;class MyLocationListener implements LocationListener {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;class MyLocationListener implements LocationListener {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   public void onLocationChanged(Location location) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   public void onLocationChanged(Location location) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l104&quot;&gt;Строка 104:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 104:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Даже если задать в PDE необходимые разрешения для скетча, пользователь по-прежнему может отклонить запрос на использование этих функций при запуске приложения на устройстве. То есть нам в скетче необходим код, который бы обрабатывал ситуацию, при которой данные о месторасположении не доступны. Поэтому мы также пишем в коде функцию checkPermission(), чтобы удостовериться, что необходимое разрешение действительно получено и мы можем получить доступ к соответствующему функционалу:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Даже если задать в PDE необходимые разрешения для скетча, пользователь по-прежнему может отклонить запрос на использование этих функций при запуске приложения на устройстве. То есть нам в скетче необходим код, который бы обрабатывал ситуацию, при которой данные о месторасположении не доступны. Поэтому мы также пишем в коде функцию checkPermission(), чтобы удостовериться, что необходимое разрешение действительно получено и мы можем получить доступ к соответствующему функционалу:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; enclose=&quot;div&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;void draw() {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;void draw() {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   background(0);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   background(0);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikihandbkcom:diff::1.12:old-7734525:rev-7734635 --&gt;
&lt;/table&gt;</summary>
		<author><name>EducationBot</name></author>
	</entry>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Processing:%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8/Processing_for_Android/%D0%9C%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=7734525&amp;oldid=prev</id>
		<title>EducationBot в 07:52, 20 мая 2023</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Processing:%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8/Processing_for_Android/%D0%9C%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=7734525&amp;oldid=prev"/>
		<updated>2023-05-20T07:52:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 11:52, 20 мая 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Строка 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Myagkij-редактор}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Myagkij-редактор}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Черновик}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Месторасположение и разрешения&amp;lt;ref&amp;gt;[https://android.processing.org/tutorials/location/index.html android.processing.org - Location and permissions]&amp;lt;/ref&amp;gt;=&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Месторасположение и разрешения&amp;lt;ref&amp;gt;[https://android.processing.org/tutorials/location/index.html android.processing.org - Location and permissions]&amp;lt;/ref&amp;gt;=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l150&quot;&gt;Строка 150:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 150:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Высота логотипа издателя для schemaNewsArticle=45&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Высота логотипа издателя для schemaNewsArticle=45&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Навигационная таблица/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Справочник языка &lt;/del&gt;Processing}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Навигационная таблица/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Портал/&lt;/ins&gt;Processing}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>EducationBot</name></author>
	</entry>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Processing:%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8/Processing_for_Android/%D0%9C%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=39063&amp;oldid=prev</id>
		<title>Myagkij в 06:35, 15 сентября 2018</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Processing:%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8/Processing_for_Android/%D0%9C%D0%B5%D1%81%D1%82%D0%BE%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=39063&amp;oldid=prev"/>
		<updated>2018-09-15T06:35:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Processing панель перехода}}&lt;br /&gt;
&lt;br /&gt;
{{Перевод от Сubewriter}}&lt;br /&gt;
{{Myagkij-редактор}}&lt;br /&gt;
&lt;br /&gt;
{{Черновик}}&lt;br /&gt;
&lt;br /&gt;
=Месторасположение и разрешения&amp;lt;ref&amp;gt;[https://android.processing.org/tutorials/location/index.html android.processing.org - Location and permissions]&amp;lt;/ref&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
Это руководство объясняет, как получить доступ к GPS-данным о месторасположении и правильно настроить разрешения скетча на устройствах с операционной системой Android версии 6+.&lt;br /&gt;
&lt;br /&gt;
== API Android для определения месторасположения ==&lt;br /&gt;
&lt;br /&gt;
Устройство Android может определить [https://developer.android.com/guide/topics/location/strategies свое месторасположение] с точностью до нескольких градусов при помощи информации от сетей, к которым оно подключено (WiFi, сотовой связи), или при помощи сигналов от GPS-спутников (от англ. «global positioning system», т.е. «глобальная система позиционирования»). Данные о месторасположении, полученные с помощью GPS, получаются более точными, но этот метод требует, чтобы устройство находилось вне помещения, расходует больше заряда батареи и обновляется реже, чем при определении месторасположения с помощью сетей.&lt;br /&gt;
&lt;br /&gt;
== Создание менеджера месторасположения ==&lt;br /&gt;
&lt;br /&gt;
Базовая структура скетча, получающего доступ к данным о месторасположении, очень похожа на ту, которую мы уже видели в скетчах-примерах для работы с [wikihandbk.com/wiki/Processing:Библиотеки/Processing_for_Android/Руководства/Использование_датчиков другими датчиками]. Вначале мы берем менеджера месторасположения из контекста приложения, «живых» обоев или циферблата при помощи функции surface.getContext() (если версия режима программирования Android – 4.0 и выше) или просто считываем указатель на активность при помощи функции getActivity() (если у вас версия 3). После этого мы подключаем «слушателя» к менеджеру:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
import android.content.Context;&lt;br /&gt;
import android.location.Location;&lt;br /&gt;
import android.location.LocationListener;&lt;br /&gt;
import android.location.LocationManager;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.Manifest;&lt;br /&gt;
&lt;br /&gt;
LocationManager locationManager;&lt;br /&gt;
MyLocationListener locationListener;&lt;br /&gt;
&lt;br /&gt;
boolean hasLocation = false;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  fullScreen();&lt;br /&gt;
  orientation(PORTRAIT);  &lt;br /&gt;
  textFont(createFont(&amp;quot;SansSerif&amp;quot;, 26 * displayDensity));&lt;br /&gt;
  textAlign(CENTER, CENTER);&lt;br /&gt;
  requestPermission(&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;, &amp;quot;initLocation&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw() {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void initLocation(boolean granted) {&lt;br /&gt;
  if (granted) {    &lt;br /&gt;
    Context context = getContext();&lt;br /&gt;
    locationListener = new MyLocationListener();&lt;br /&gt;
    locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);    &lt;br /&gt;
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);&lt;br /&gt;
    hasLocation = true;&lt;br /&gt;
  } else {&lt;br /&gt;
    hasLocation = false;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class MyLocationListener implements LocationListener {&lt;br /&gt;
  public void onLocationChanged(Location location) {&lt;br /&gt;
    println(location.getLatitude(), location.getLongitude());&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public void onProviderDisabled (String provider) { }&lt;br /&gt;
&lt;br /&gt;
  public void onProviderEnabled (String provider) { }&lt;br /&gt;
&lt;br /&gt;
  public void onStatusChanged (String provider, int status, Bundle extras) {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Мы здесь явно запрашиваем разрешение при помощи функции requestPermission(), а также помещаем код с инициализацией менеджера и слушателя внутрь функции initLocation(), а не внутрь setup(), как в предыдущих примерах. Причина в том, что в последних версиях Android (6.0 и новее) разрешения поделены на две группы: [https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous обычные и опасные]. Разрешения, классифицированные как [https://developer.android.com/guide/topics/permissions/overview#permission-groups «опасные»], касаются доступа к личным данным пользователя – вроде данных о месторасположении или списка контактов – и требуют, чтобы пользователь принимал решения по каждому из этих разрешений отдельно во время запуска приложения, а не его установки.&lt;br /&gt;
&lt;br /&gt;
Приложение покажет диалоговое окно, спрашивающее о том, что сделать – дать или отклонить разрешение. Лишь после этого будет вызвана функция initLocation(), которая – в зависимости от булева значения в аргументе granted – либо запустит, либо не запустит процесс определения местонахождения. Этой функцией, которая должна содержать инициализирующий код, соответствующий запрашиваемому разрешению, не обязательно должна быть initLocation(). Она может называться по-другому, но должна отвечать двум важным критериям – во-первых, она должна принимать булев аргумент, а во-вторых, ее название должно быть указано аргументом в функции requestPermission().&lt;br /&gt;
&lt;br /&gt;
Кроме того, вам надо будет задать разрешения, необходимые для работы этого скетча. Для этого кликните в PDE на Android &amp;gt; Sketch Permissions, а затем поставьте галочки у пунктов ACCESS_COARSE_LOCATION (для обнаружения местонахождения с помощью сетей) и ACCESS_FINE_LOCATION (для обнаружения местонахождения с помощью GPS):&lt;br /&gt;
&lt;br /&gt;
[[File:Processing for Android_permission_selector_1.png|center]]&lt;br /&gt;
&lt;br /&gt;
Переменная location, которую мы получаем в «слушателе» данных о локации, содержит всю информацию, необходимую для указания месторасположения при помощи широты и долготы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
class MyLocationListener implements LocationListener {&lt;br /&gt;
  public void onLocationChanged(Location location) {&lt;br /&gt;
    currentLatitude  = (float)location.getLatitude();&lt;br /&gt;
    currentLongitude = (float)location.getLongitude();&lt;br /&gt;
    currentAccuracy  = (float)location.getAccuracy();&lt;br /&gt;
    currentProvider  = location.getProvider();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public void onProviderDisabled (String provider) { &lt;br /&gt;
    currentProvider = &amp;quot;&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public void onProviderEnabled (String provider) { &lt;br /&gt;
    currentProvider = provider;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public void onStatusChanged (String provider, int status, Bundle extras) {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Проверка наличия данных о месторасположении ==&lt;br /&gt;
&lt;br /&gt;
Даже если задать в PDE необходимые разрешения для скетча, пользователь по-прежнему может отклонить запрос на использование этих функций при запуске приложения на устройстве. То есть нам в скетче необходим код, который бы обрабатывал ситуацию, при которой данные о месторасположении не доступны. Поэтому мы также пишем в коде функцию checkPermission(), чтобы удостовериться, что необходимое разрешение действительно получено и мы можем получить доступ к соответствующему функционалу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
void draw() {&lt;br /&gt;
  background(0);&lt;br /&gt;
  if (hasPermission(&amp;quot;android.permission.ACCESS_FINE_LOCATION&amp;quot;)) {&lt;br /&gt;
    text(&amp;quot;Latitude: &amp;quot; + currentLatitude + &amp;quot;\n&amp;quot; +&lt;br /&gt;
         &amp;quot;Longitude: &amp;quot; + currentLongitude + &amp;quot;\n&amp;quot; +&lt;br /&gt;
         &amp;quot;Accuracy: &amp;quot; + currentAccuracy + &amp;quot;\n&amp;quot; +&lt;br /&gt;
         &amp;quot;Provider: &amp;quot; + currentProvider, 0, 0, width, height);&lt;br /&gt;
     //  &amp;quot;Широта: &amp;quot;&lt;br /&gt;
     //  &amp;quot;Долгота: &amp;quot;&lt;br /&gt;
     //  &amp;quot;Точность: &amp;quot;&lt;br /&gt;
     //  &amp;quot;Провайдер: &amp;quot;&lt;br /&gt;
  } else {&lt;br /&gt;
    text(&amp;quot;No permissions to access location&amp;quot;, 0, 0, width, height);&lt;br /&gt;
     //  &amp;quot;Нет разрешения на доступ к данным о месторасположении&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полный код этого скетча-примера можно найти [https://github.com/codeanticode/processing-android-tutorials/tree/master/location_permissions/ex1_gps тут]. Запустив этот скетч на устройстве с Android версии 6 и новее, вы должны увидеть на экране следующее диалоговое окно, запрашивающее разрешение на получение данных о местонахождении:&lt;br /&gt;
&lt;br /&gt;
[[File:Processing for Android_permission_dialog_2.png|center]]&lt;br /&gt;
&lt;br /&gt;
Разрешив приложению доступ к данным о месторасположении своего устройства, вы получите значения широты и долготы, считанные при помощи «класса-слушателя».&lt;br /&gt;
&lt;br /&gt;
=См.также=&lt;br /&gt;
&lt;br /&gt;
=Внешние ссылки=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
{{SEO&lt;br /&gt;
|Заголовок статьи=Processing:  / Онлайн справочник - wikihandbk.com&lt;br /&gt;
|Ключевые слова=processing,&lt;br /&gt;
|Описание статьи= &lt;br /&gt;
|Изображение статьи для Open Graph=&lt;br /&gt;
|Адрес страницы для schemaNewsArticle=&amp;lt;nowiki&amp;gt;http://wikihandbk.com/wiki/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Изображение статьи для schemaNewsArticle=&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Высота изображения статьи для schemaNewsArticle=&lt;br /&gt;
|Ширина изображения статьи для schemaNewsArticle=&lt;br /&gt;
|Дата публикации для schemaNewsArticle=2018-09-15&lt;br /&gt;
|Автор=Мякишев Е.А.&lt;br /&gt;
|Издатель=myagkij&lt;br /&gt;
|Логотип издателя для schemaNewsArticle=&amp;lt;nowiki&amp;gt;http://wikihandbk.com/ruwiki/images/6/61/Tech_geek_logo_1x.jpg&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Ширина логотипа издателя для schemaNewsArticle=60&lt;br /&gt;
|Высота логотипа издателя для schemaNewsArticle=45&lt;br /&gt;
}}&lt;br /&gt;
{{Навигационная таблица/Справочник языка Processing}}&lt;/div&gt;</summary>
		<author><name>Myagkij</name></author>
	</entry>
</feed>