<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF163%3A%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android</id>
		<title>LXF163:Средства разработки для Android - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF163%3A%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF163:%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android&amp;action=history"/>
		<updated>2026-05-13T05:25:08Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF163:%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android&amp;diff=18727&amp;oldid=prev</id>
		<title>Olkol: /* Сред­ст­ва раз­ра­бот­ки для Android */</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF163:%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android&amp;diff=18727&amp;oldid=prev"/>
				<updated>2018-10-18T23:16:33Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Сред­ст­ва раз­ра­бот­ки для Android&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 23:16, 18 октября 2018&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Сред­ст­ва раз­ра­бот­ки для Android==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==Сред­ст­ва раз­ра­бот­ки для Android==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Файл:BorovskiyA_fmt.png |left |100px |thumb|'''Наш эксперт'''Ан­д­рей Бо­ров­ский в 14 лет сломал школьную локальную сеть. И это оказалось только началом.]] &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Файл:BorovskiyA_fmt.png |left |100px |thumb|'''Наш эксперт''' Ан­д­рей Бо­ров­ский в 14 лет сломал школьную локальную сеть. И это оказалось только началом.]] &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''За­ду­ма­но – сде­ла­но: к ра­до­сти Ан­д­рея Бо­ров­ско­го, про­­грам­­ми­­ро­­вать на­конец-то мож­но, «не от­хо­дя от кас­сы». В смыс­ле, пря­мо на мо­бильнике.''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''За­ду­ма­но – сде­ла­но: к ра­до­сти Ан­д­рея Бо­ров­ско­го, про­­грам­­ми­­ро­­вать на­конец-то мож­но, «не от­хо­дя от кас­сы». В смыс­ле, пря­мо на мо­бильнике.''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF163:%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android&amp;diff=18725&amp;oldid=prev</id>
		<title>Olkol: Olkol переименовал страницу LXF162:Средства разработки для Android в LXF163:Средства разработки для Android</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF163:%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android&amp;diff=18725&amp;oldid=prev"/>
				<updated>2018-10-18T23:16:05Z</updated>
		
		<summary type="html">&lt;p&gt;Olkol переименовал страницу &lt;a href=&quot;/wiki/LXF162:%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android&quot; class=&quot;mw-redirect&quot; title=&quot;LXF162:Средства разработки для Android&quot;&gt;LXF162:Средства разработки для Android&lt;/a&gt; в &lt;a href=&quot;/wiki/LXF163:%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android&quot; title=&quot;LXF163:Средства разработки для Android&quot;&gt;LXF163:Средства разработки для Android&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Версия 23:16, 18 октября 2018&lt;/td&gt;
			&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF163:%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android&amp;diff=18724&amp;oldid=prev</id>
		<title>Olkol в 23:14, 18 октября 2018</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF163:%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android&amp;diff=18724&amp;oldid=prev"/>
				<updated>2018-10-18T23:14:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxformat.ru/wiki/index.php?title=LXF163:%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android&amp;amp;diff=18724&amp;amp;oldid=18716&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF163:%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android&amp;diff=18716&amp;oldid=prev</id>
		<title>Olkol: Новая страница: «Категория:Постоянные рубрики   Категория:Android    '''Об­ще­ние с дру­ги­ми'''  '''Программ…»</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF163:%D0%A1%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_Android&amp;diff=18716&amp;oldid=prev"/>
				<updated>2018-10-18T22:16:18Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&lt;a href=&quot;/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D1%8B%D0%B5_%D1%80%D1%83%D0%B1%D1%80%D0%B8%D0%BA%D0%B8&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Категория:Постоянные рубрики (страница не существует)&quot;&gt;Категория:Постоянные рубрики&lt;/a&gt;   &lt;a href=&quot;/wiki/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Android&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Категория:Android (страница не существует)&quot;&gt;Категория:Android&lt;/a&gt;    &amp;#039;&amp;#039;&amp;#039;Об­ще­ние с дру­ги­ми&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;Программ…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Категория:Постоянные рубрики]]  &lt;br /&gt;
[[Категория:Android]]  &lt;br /&gt;
&lt;br /&gt;
'''Об­ще­ние с дру­ги­ми'''&lt;br /&gt;
&lt;br /&gt;
'''Программирование Свяжем ваши устройства через Bluetooth'''&lt;br /&gt;
&lt;br /&gt;
==Средства разработки для Android==&lt;br /&gt;
&lt;br /&gt;
[[Файл: |left |100px |thumb|'''Наш эксперт''']] &lt;br /&gt;
LXF111.tut_adv.jkemp.psd&lt;br /&gt;
&lt;br /&gt;
''Джуль­ет­та Кемп пи­шет ста­тьи для раз­лич­ных изда­­ний и ра­бо­та­ет сис­тем­ным ад­ми­ни­ст­ра­то­ром. Во вре­мя на­пи­са­ния этой ста­тьи ей при­шлось не­ма­ло по­жонг­ли­ро­вать с те­ле­фо­ном.''&lt;br /&gt;
&lt;br /&gt;
&amp;gt; По­иск спа­рен­ных и близ­ле­жа­щих уст­ройств.&lt;br /&gt;
&lt;br /&gt;
Джуль­ет­та Кемп рассказывает, как Bluetooth по­мо­га­ет об­щать­ся &lt;br /&gt;
с дру­ги­ми уст­рой­ст­ва­ми, и ­проясняет сер­вис об­ме­на со­об­ще­ния­ми.&lt;br /&gt;
&lt;br /&gt;
Се­го­дня Bluetooth мож­но най­ти на лю­бых уст­рой­ст­вах, и с его по­мо­щью лег­ко об­менивать­ся дан­ны­ми ме­ж­ду уст­рой­ст­ва­ми. На этом уро­ке мы на­пи­шем сер­вис об­ме­на со­об­щения­ми по Bluetooth и уз­на­ем, как об­на­ру­жить дру­гие уст­рой­ст­ва (спа­рен­ные или нет), за­пустить сер­вер Bluetooth, от­пра­вить за­прос на под­клю­чение со сто­ро­ны кли­ен­та и пе­ре­дать дан­ные ме­ж­ду дву­мя уст­рой­ст­ва­ми. От­ме­тим, что этот про­ект де­лал­ся под Android 10 (2.3.3), но сра­бо­та­ет­ся и с бо­лее поздними вер­сия­ми. Пол­ный код уро­ка мож­но най­ти на LXFDVD, но помните, что он не бу­дет вы­пол­нять­ся «как есть» – для ком­пи­ля­ции в ва­шей локаль­ной сре­де про­ек­ты Android нуж­но на­стро­ить ли­бо вруч­ную, ли­бо в Eclipse.&lt;br /&gt;
&lt;br /&gt;
Ус­та­нав­ли­ва­ем со­еди­не­ние по Bluetooth&lt;br /&gt;
&lt;br /&gt;
Из­менения, ко­то­рые надо про­де­лать в фай­ле AndroidManifest.xml, опи­са­ны на на­шем DVD. Для об­ме­на дан­ны­ми по Bluetooth по­на­до­бят­ся и кли­ент, и сер­вер. Сер­вер слу­ша­ет под­клю­чения, от­крыв со­кет BluetoothServerSocket; кли­ент соз­да­ет BluetoothSocket, от­кры­ва­ет ка­нал свя­зи с сер­ве­ром RFCOMM и от­прав­ля­ет за­прос на со­единение. Сер­вер принима­ет со­единение и от­кры­ва­ет свой BluetoothSocket. Когда оба со­ке­та BluetoothSocket на од­ном и том же ка­на­ле RFCOMM бу­дут от­кры­ты, кли­ент и сер­вер под­клю­чат­ся друг к дру­гу и смо­гут об­менивать­ся дан­ны­ми.&lt;br /&gt;
&lt;br /&gt;
По­сле уста­нов­ки со­единения сер­вер дол­жен за­крыть свой со­кет BluetoothServerSocket, ес­ли вам не нуж­но под­дер­жи­вать несколь­ко со­единений од­но­вре­мен­но.&lt;br /&gt;
&lt;br /&gt;
Итак, есть два ва­ри­ан­та соз­дания под­клю­чения:&lt;br /&gt;
&lt;br /&gt;
» на­пи­сать от­дель­ные про­грам­мы кли­ен­та и сер­ве­ра;&lt;br /&gt;
&lt;br /&gt;
» на­пи­сать про­грам­му, спо­соб­ную вес­ти се­бя и как кли­ент, и как сер­вер, и за­пра­ши­вать или принимать под­клю­чение.&lt;br /&gt;
&lt;br /&gt;
Вто­рой ва­ри­ант ис­поль­зу­ет­ся во мно­гих при­ло­жениях Bluetooth; его мы и вы­бе­рем. Ес­ли у вас нет двух уст­ройств для про­вер­ки со­единения, мож­но раз­вер­нуть сер­вер Java на но­ут­бу­ке или ПК. По уста­нов­ке со­единения и сер­вер, и кли­ент бу­дут пе­ре­да­вать и принимать дан­ные. По­это­му наш класс BluetoothIMService бу­дет вы­пол­нять три от­дель­ных дей­ст­вия:&lt;br /&gt;
&lt;br /&gt;
» слу­шать по­пыт­ки со­единения («сер­вер»);&lt;br /&gt;
&lt;br /&gt;
» от­прав­лять за­прос на со­единения («кли­ент»);&lt;br /&gt;
&lt;br /&gt;
» об­ра­ба­ты­вать пе­ре­да­чу дан­ных по­сле уста­нов­ки со­единения.&lt;br /&gt;
&lt;br /&gt;
Эти дей­ст­вия бу­дут реа­ли­зо­ва­ны в от­дель­ных нитях, и мы смо­жем слу­шать со­единения, не пре­ры­вая про­чую ак­тив­ность при­ло­жений и сис­те­мы.&lt;br /&gt;
&lt;br /&gt;
Мы соз­да­ем и за­пуска­ем сер­вис сле­дую­щим об­ра­зом:&lt;br /&gt;
&lt;br /&gt;
public class BluetoothIMService {&lt;br /&gt;
&lt;br /&gt;
// Раз­лич­ные по­ля; под­роб­но­сти см. в ко­де на DVD&lt;br /&gt;
&lt;br /&gt;
public BluetoothIMService(Context context, Handler h) {&lt;br /&gt;
&lt;br /&gt;
adapter = BluetoothAdapter.getDefaultAdapter();&lt;br /&gt;
&lt;br /&gt;
handler = h;&lt;br /&gt;
&lt;br /&gt;
state = STATE_NONE;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public synchronized void start() {&lt;br /&gt;
&lt;br /&gt;
if (connectThread != null) {connectThread.cancel(); connectThread = null;}&lt;br /&gt;
&lt;br /&gt;
if (dataThread != null) {dataThread.cancel(); dataThread = null;}&lt;br /&gt;
&lt;br /&gt;
setState(STATE_LISTEN);&lt;br /&gt;
&lt;br /&gt;
if (acceptThread == null) {&lt;br /&gt;
&lt;br /&gt;
acceptThread = new AcceptThread(true);&lt;br /&gt;
&lt;br /&gt;
acceptThread.start();&lt;/div&gt;</summary>
		<author><name>Olkol</name></author>	</entry>

	</feed>