<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=63&amp;t=20730&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-05-21T09:03:18+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=63&amp;t=20730&amp;mode</id>
<entry>
<author><name><![CDATA[tfosik]]></name></author>
<updated>2018-05-21T09:03:18+01:00</updated>
<published>2018-05-21T09:03:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=208035#p208035</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=208035#p208035"/>
<title type="html"><![CDATA[Re: Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=208035#p208035"><![CDATA[
Witam<br />Jeszcze małe doprecyzowanie.<br />Parametr targetSdkVersion ma na celu zapewnić kompatybilność wsteczną... To oznacza że jeżeli np.  ustawiony jest na 22 i poniżej, system uruchomi aplikację bez zmian wprowadzonych w API 23+ i aplikacja będzie działać &quot;normalnie&quot; na nowych systemach. Dla przykładu jeżeli aplikacja ma ustawioną wartość targetSdkVersion=14 (android 4.0), to będzie działać na Android 8.0, bez zabawy z uprawnieniami wykonawczymi itp.<br /><br />Niestety Google wymusza na programistach aby od sierpnia tego roku w przypadku nowych aplikacji, i od listopada tego roku w przypadku istniejących aplikacji, parametr targetSdkVersion ustawiony był na 26+.<br /><br /><!-- m --><a class="postlink" href="https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html" >https://android-developers.googleblog.c ... mance.html</a><!-- m -->.<br /><br />Taki wymóg niestety powoduje że musimy np. &quot;uskutecznić&quot; zabawę z uprawnieniami wykonawczymi.<br /><br />P.S<br />Jeszcze mała uwaga dla tych którzy mają aplikację na sklepie Google... Sprawdź 10 razy czy twoja aplikacja działa dobrze z nowymi ustawieniami na nowym systemie (Android 8.0 +). Jeżeli uaktualnisz aplikację na sklepie do targetSdkVersion = 23+, powrotu do niższej wersji już nie będzie.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 21 maja 2018, o 09:03 ]</span></strong><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 21 maja 2018, o 09:03 ]</span></strong><br /><br />Witam<br />Małe sprostowanie.....napisałem wyżej że niczego nie musimy dodawać do manifestu...Otóż nie do końca jest to prawda, wszystko zależy od bibliotek które wykorzystujemy w naszych projektach. Większość bibliotek dodaje te uprawnienia do manifestu ale nie wszystkie. Nie musimy zgadywać, klikamy w listę uprawnień i od razu widać które uprawnienia są dodane a, które nie. Jeżeli któregoś brakuje to dodajemy je ręcznie do manifestu np. tak:<br />[syntax=basic4gl]AddPermission(android.permission.RECEIVE_SMS)<br />AddPermission(android.permission.ACCESS_NETWORK_STATE)<br />AddPermission(android.permission.INTERNET)<br />AddPermission(android.permission.WRITE_SETTINGS)<br />AddPermission(android.permission.SEND_SMS) <br />AddPermission(android.permission.WAKE_LOCK)[/syntax]<br /><br />Przepraszam jeżeli kogoś wprowadziłem w błąd.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18769">tfosik</a> — 21 maja 2018, o 09:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jaglarz]]></name></author>
<updated>2018-05-15T13:50:29+01:00</updated>
<published>2018-05-15T13:50:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207812#p207812</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207812#p207812"/>
<title type="html"><![CDATA[Re: Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207812#p207812"><![CDATA[
Widzę że <strong>tfosik</strong> będzie cennym nabytkiem w tym dziale.  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=471">Jaglarz</a> — 15 maja 2018, o 13:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tfosik]]></name></author>
<updated>2018-05-15T17:15:05+01:00</updated>
<published>2018-05-15T11:33:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207806#p207806</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207806#p207806"/>
<title type="html"><![CDATA[Re: Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207806#p207806"><![CDATA[
Witam<br />W pierwszym poście napisałem że uzyskiwanie pozwolenia od użytkownika ma odbywać się w trakcie wykonywania kodu. Teraz pokażę jak to można zrobić.<br />Dla przykładu mamy aplikację która wysyła wiadomości SMS. Aplikacja posiada cztery przyciski P1, P2, P3, P4. Po kliknięciu w któryś z przycisków telefon wysyła wiadomość SMS pod określony numer telefonu. Zgodnie z zaleceniami GOOGLE (teoretycznie) powinniśmy uzyskiwać takie pozwolenie w każdym z przycisków.....bo nie wiemy w który z nich użytkownik kliknie jako pierwszy. W tym przypadku pozwolenie wykonawcze to &quot;PERMISSION_SEND_SMS&quot;<br />Dla przykładu kod mógłby wyglądać tak:<br />[syntax=vb]Sub P1_Click<br /><br />Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_SEND_SMS)<br />Wait For Activity_PermissionResult (Permission As String, PResult As Boolean)<br />If PResult = False Then<br />MsgboxAsync(&quot;Brak zgody PERMISSION_SEND_SMS &quot;, &quot;&quot;)<br />Return<br />Else<br />Log(&quot;OK&quot;)<br />Dim numertelefonu As String<br />Dim wiadsms As String<br /><br />numertelefonu =&quot;504......&quot;<br />wiadsms=&quot;Treść wiadomości do wysłania&quot;<br />SMS.Send(numertelefonu,wiadsms)<br />End If<br /><br />End Sub[/syntax]<br /><br />Tak należałoby postąpić dla pozostałych przycisków P2, P3, P4..... Możemy jednak uprościć sobie sprawę i zamiast za każdym razem wywoływać metodę &quot;CheckAndRequest&quot; skorzystać z metody  &quot;Check&quot;.<br /><br />Metoda check sprawdza tylko czy aplikacja uzyskała już od użytkownika pozwolenie, zwraca true jeśli tak lub false jeśli nie. <br />Można ją stosować w każdym module (aktywności, serwisowym czy module klasy). <br />Metodę CheckAndRequest możemy stosować tylko w aktywnościach... z racji tego iż w pozostałych modułach nie można wyświetlić okienka komunikatów.<br /><br />A tutaj mały przykład jak można stosować metodę Check<br /><br />[syntax=vb]Sub P1_Click<br />If Starter.rp.Check(Starter.rp.PERMISSION_SEND_SMS) = False Then<br />pozwolenie_1<br />Else<br />Dim numertelefonu As String<br />Dim wiadsms As String<br />numertelefonu =&quot;504......&quot;<br />wiadsms=&quot;Treść wiadomości do wysłania&quot;<br />SMS.Send(numertelefonu,wiadsms)<br />End If<br />End Sub<br />'analogicznie postępujemy dla pozostałych przycisków P2, P3, P4<br /><br />Sub pozwolenie_1<br />Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_SEND_SMS)<br /> Wait For Activity_PermissionResult (Permission As String, PResult As Boolean)<br />If PResult = False Then<br />MsgboxAsync(&quot;Brak zgody PERMISSION_SEND_SMS&quot;, &quot;&quot;)<br />Return<br />Else<br />Log(&quot;OK&quot;)<br />End If<br />End Sub[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18769">tfosik</a> — 15 maja 2018, o 11:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-05-13T18:59:51+01:00</updated>
<published>2018-05-13T18:59:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207743#p207743</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207743#p207743"/>
<title type="html"><![CDATA[Re: Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207743#p207743"><![CDATA[
<div class="quotetitle">tfosik napisał(a):</div><div class="quotecontent"><br />To najlepsza z możliwych opcji.<br /></div><br />dokładnie tym bardziej, że Erel wciąż ostro pracuje nad rozwojem B4A<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 maja 2018, o 18:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tfosik]]></name></author>
<updated>2018-05-13T14:04:50+01:00</updated>
<published>2018-05-13T14:04:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207735#p207735</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207735#p207735"/>
<title type="html"><![CDATA[Re: Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207735#p207735"><![CDATA[
To najlepsza z możliwych opcji. Do końca roku może być jeszcze wiele uaktualnień.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18769">tfosik</a> — 13 maja 2018, o 14:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grzeniu 73]]></name></author>
<updated>2018-05-13T13:53:53+01:00</updated>
<published>2018-05-13T13:53:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207734#p207734</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207734#p207734"/>
<title type="html"><![CDATA[Re: Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207734#p207734"><![CDATA[
i wychodzi na to ,ze trzeba wykupić uaktualnienia na następne 2 lata<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1519">grzeniu 73</a> — 13 maja 2018, o 13:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-05-13T11:32:29+01:00</updated>
<published>2018-05-13T11:32:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207729#p207729</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207729#p207729"/>
<title type="html"><![CDATA[Re: Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207729#p207729"><![CDATA[
<div class="quotetitle">tfosik napisał(a):</div><div class="quotecontent"><br />Już teraz w wersji androida 8.0 np moduł starter może być ubity przez system tak jak każda inna aktywność . Erel obiecał że naprawi to w wersji v 8.1 B4A .<br /></div><br />Dokładnie ... oby mu się udało <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 maja 2018, o 11:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tfosik]]></name></author>
<updated>2018-05-13T11:31:13+01:00</updated>
<published>2018-05-13T11:31:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207728#p207728</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207728#p207728"/>
<title type="html"><![CDATA[Re: Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207728#p207728"><![CDATA[
Już teraz w wersji androida 8.0 np moduł starter może być ubity przez system tak jak każda inna aktywność . Erel obiecał że naprawi to w wersji v 8.1 B4A .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18769">tfosik</a> — 13 maja 2018, o 11:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-05-13T11:23:12+01:00</updated>
<published>2018-05-13T11:23:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207722#p207722</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207722#p207722"/>
<title type="html"><![CDATA[Re: Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207722#p207722"><![CDATA[
<div class="quotetitle">Jaglarz napisał(a):</div><div class="quotecontent"><br />No dobra a co jeśli programista o to nie zadba? Aplikacja nie będzie działać prawidłowo bo nie będzie mieć odpowiednich uprawnień? <br /><br />Wolałbym żeby Erel zaszył to natywnie w B4A.  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /></div><br /><br />To właśnie Erel ładnie zadbał o to - i można to zrobić tak jak pokazał kolega wyżej ... Niestety gogel jak zwykle strasznie miesza - zmienia swoje API bez ostrzeżenia (tzn ok no z ostrzeżeniem i czasem wyprzedzeniem) .... ale co zrobić - monopolista i trza się dostosować. Ileż to Erel się musiał napocić gdy koci gogel wycofał okienkową wersję swojego aktualizatora Android SDK ... komu z nas - chciałoby się robić to z konsoli prawda ? ... no to Erel wziął się i napisał własną apkę - dzięki której można już ładnie pobierać i aktualizować NDK....<br /><br />Te ograniczenia w najnowszej wersji systemów android są o tyle kocie, że zdaje się, że te uprawnienia i to i tak mały pikuś - w kolejnych wersjach swoich apek będzie trzeba robić wiele więcej zmian w innych miejscach jak się będzie chciało zaktualizować wersję po 20 września albo wypuścić nową .... Ja i tak podziwiam Erela - że on nad tym wciąż panuje bo musi co chwilę dostosowywać przecież B4A i KUPĘ - na prawdę Kupę różnych bibliotek do B4A żeby były zgodne ...<br /><br />Ja np teraz walczę z głupimi powiadomieniami (Notify) ... a mój stary poradnik wideo w tym zakresie można powiedzieć, że jest już w 60% nieaktualny <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 maja 2018, o 11:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tfosik]]></name></author>
<updated>2018-05-13T11:10:15+01:00</updated>
<published>2018-05-13T11:10:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207720#p207720</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207720#p207720"/>
<title type="html"><![CDATA[Re: Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207720#p207720"><![CDATA[
Jeśli o to nie zadbasz to aplikacja przestanie działać prawidłowo, może ulegać awarii lub nie działać wcale.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18769">tfosik</a> — 13 maja 2018, o 11:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jaglarz]]></name></author>
<updated>2018-05-13T11:03:54+01:00</updated>
<published>2018-05-13T11:03:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207719#p207719</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207719#p207719"/>
<title type="html"><![CDATA[Re: Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207719#p207719"><![CDATA[
No dobra a co jeśli programista o to nie zadba? Aplikacja nie będzie działać prawidłowo bo nie będzie mieć odpowiednich uprawnień? <br /><br />Wolałbym żeby Erel zaszył to natywnie w B4A.  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=471">Jaglarz</a> — 13 maja 2018, o 11:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-05-13T10:58:56+01:00</updated>
<published>2018-05-13T10:58:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207718#p207718</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207718#p207718"/>
<title type="html"><![CDATA[Re: Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207718#p207718"><![CDATA[
Bardzo cenna uwaga i ładnie pokazany sposób.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 maja 2018, o 10:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tfosik]]></name></author>
<updated>2018-05-13T14:23:43+01:00</updated>
<published>2018-05-13T10:38:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207717#p207717</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207717#p207717"/>
<title type="html"><![CDATA[Uprawnienia wykonawcze (runtime-permissions)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20730&amp;p=207717#p207717"><![CDATA[
WITAM<br />Od wersji SDK=''23&quot; i wyżej, musimy uzyskiwać pozwolenia wykonawcze w trakcie wykonywania się kodu. Goggle zmieniło politykę, wcześniej użytkownik musiał zatwierdzać podczas instalacji takie &quot;niebezpieczne uprawnienia&quot;.<br />Teraz programista musi zadbać o to aby uzyskiwać pozwolenie na wykonywanie niebezpiecznych uprawnień w trakcie wykonywania się kodu(teoretycznie), oczywiście do pierwszego wystąpienia.<br /><br />Wystarczy że raz aplikacja uzyska wymagane pozwolenie od użytkownika a zostanie to już &quot;zapamiętane&quot;  w systemie. Po 20 października wszystkie aplikacje będą musiały być na SDK&quot;26&quot; manifest editor linia:<br />&lt;uses-sdk android:minSdkVersion=&quot;5&quot; android:targetSdkVersion=&quot;26&quot;/&gt;<br /><br />Powiało groźnie, ale to prosta czynność.<br />1. Musimy uaktualnić wersję do B4A v8.0<br /><br />2. Musimy sprawdzić jakie nasza aplikacja ma uprawnienia. Wchodzimy w zakładkę Logi (tam gdzie Menadżer <br />   bibliotek, Menadżer plików, itd., prawy dolny róg ) a następnie klikamy w zakładkę Lista uprawnień.<br />   Pojawi się okienko z uprawnieniami, wszystkie zaznaczone gwiazdką to uprawnienia niebezpieczne i musimy <br />  przeprowadzić zabawę z uzyskiwaniem pozwolenia. Pozostałe uprawnienia możemy zignorować.<br /><br />3. Dodajemy do projektu bibliotekę RuntimePermissions<br /><br />4. Teraz możemy zrobić np. tak (to uprawnienia jednej z moich aplikacji) Tutaj dodaję je od razu:<br />[syntax=vb]Moduł starter<br /><br />Sub Process_Globals<br />    Private rp As RuntimePermissions<br />End Sub[/syntax]<br /><br />Aktywność (main)<br />[syntax=vb]Sub Activity_Create(FirstTime As Boolean)<br />  <br />Activity.LoadLayout(&quot;1&quot;)<br /><br />Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_RECEIVE_SMS)<br />Wait For Activity_PermissionResult (Permission As String, PResult As Boolean)<br />If PResult = False Then<br />MsgboxAsync(&quot;brak uprawnień  RECIVE SMS&quot;, &quot;&quot;)<br />Return<br />Else<br />Log(&quot;OK&quot;)<br />End If<br /><br />Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_SEND_SMS)<br />Wait For Activity_PermissionResult (Permission As String, PResult As Boolean)<br />If PResult = False Then<br />MsgboxAsync(&quot;brak uprawnień SEND SMS&quot;, &quot;&quot;)<br />Return<br />Else<br />Log(&quot;OK&quot;)<br />End If<br />   <br />Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE)  '<br />Wait For Activity_PermissionResult (Permission As String, PResult As Boolean)<br />If PResult = False Then<br />MsgboxAsync(&quot;brak uprawnień  PHONE STATE&quot;, &quot;&quot;)<br />Return<br />Else<br />Dim pid As PhoneId<br />Log(&quot;phone id: &quot; &amp; pid)<br />End If<br /><br /><br />End Sub[/syntax]<br /><br />To wszystko, żadnych uprawnień nie musimy wprowadzać do manifestu. Kompilator zrobi to automatycznie.<br /><br />P.S. <br />Dla formalności te uprawnienia powinny być dodawane w różnych miejscach kodu, zgodnie z wytycznymi Google. Tutaj dodane zostały w jednym miejscu i przy pierwszym uruchomieniu aplikacji użytkownik będzie musiał zatwierdzać jedno po drugim. W tym przypadku pojawią się dokładnie dwa. Oczywiście takie grupowe zestawienie też działa... Przynajmniej na razie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18769">tfosik</a> — 13 maja 2018, o 10:38</p><hr />
]]></content>
</entry>
</feed>