Mobil algılayıcılar kullanan bir uygulama oluşturma
Algılayıcılar, telefonunuzun yeteneklerini kullanarak, uygulamalarınıza daha fazla işlevsellik eklemenize olanak sağlar. Bu makalede, Power Apps uygulamasında mobil aygıtınızda algılayıcıları kullanmayı öğreneceksiniz.
Bunu yapmak için iki ekran ile bir örnek uygulama oluşturursunuz. İlk ekranda, geçerli pusula başlığı, enlem, Boylam, yükseklik görüntülenir ve metin bilgilerini almak için NFC etiketlerini tarayabilir. İkinci ekranda, X ve Y eksenlerinde aygıtın açısını oluşturmak için ivme ölçerin verilerini görüntüleme işlemi gösterimi yer alacaktır.
İlk ekranın ardındaki senaryoyu ayarlamak için, NFC tabanlı bir kayıt atıcı için bir uygulama oluşturduğunuzu varsayın. Her katılımcı, onlara sonraki hedeflerine yöneltien bir pusula etiketi, enlem ve boylala olanak sağlayacak bir NFC etiketini sağlamak için kullanır. Bu hedefte, katılımcı daha sonra başka bir etiketi tarar ve süreci, Hunt ucuna ulaşıncaya kadar yineler.
İkinci ekran için, bir aracın kabaca ölçüm açıları düşünelim. İkinci ekranda, katılımcı bu yüzeylere bir yüzeye yerleştirebilir veya bu tür bir yüzeyi bu açıların X ve Y eksenindeki açıları alabilir ve bu açıları görsel olarak görüntüler.
Mobil algılayıcılar kullanan bir uygulamanın nasıl oluşturulacağını öğrenmek için bu videoyu izleyin:
Ön koşullar
Hiçbir veri bağlantısı kullanılmadığından, bu uygulama için herhangi bir Power Apps lisans düzeyi kullanılabilir.
Çoğu PC gerekli algılayıcılardan kaynaklanmayabileceği için GPS ve ivme ölçüm özelliklerine sahip cep telefonu veya tabletin gibi bir mobil aygıta gerek vardır.
NFC tarama özelliği için NFC uyumlu aygıt gerekiyor. Ayrıca, taranacak NFC etiketlerinin aşağıdaki örnekte yer alan metin değerlerini oluşturmak üzere önceden yapılandırıldığı de varsayılır:
"<b>Heading: </b> 80 degrees <br> <b>Latitude: </b> 44.4604788 <br> <b>Longitude: </b> -110.82813759"
Bu işlem, metni uygulamanın HTML biçimindeki biçiminde sağlar. NFC etiketlerinin kurulumu Bu makalenin kapsamı dışındadır ve gerekirse NFC öğeleri yoksayılabilir; birincil odak, Power Apps uygulamasında mobil algılayıcıları kullanıyor.
Cihaz algılayıcı çıktıları için üstbilgi ve HTML metni Ekle
Üst bilgi etiketi
Power Apps uygulamasında düzenlenmek üzere açık bir uygulama varsa, Ekle bölmesinden sürükleyip bırakarak ekrana bir metin etiketi ekleyin. Bunu ekranın sol üst köşesine yerleştirin ve Özellikler bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
Metin | "Kayıt atıcı" |
Yazı tipi boyutu | 24 |
Yazı tipi kalınlığı | FontWeight.Semibold |
Metin hizalama | Align.Center |
Genişlik | Parent.Width |
Sonra Gelişmiş bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
Renk | RGBA(255, 255, 255, 1) |
Doldur | RGBA(56, 96, 178, 1) |
Bu, ekran için bir başlık sağlayacaktır.
Cihaz algılayıcı çıktıları için HTML metni Ekle
Sonra, bir HTML metin denetimi ekleyin. Bu, tüm cihaz algılayıcı çıktılarını tek bir yerde görüntülemek için kullanılacaktır. Bu kodu HtmlText özelliğinde kullanın:
"<b><u>Current Location</u></b><br>
<br>
<b>Compass Heading: </b>" & Round(Compass.Heading, 2) & Char(0176) &
"<br>
<br>
<b>Lat: </b>" & Location.Latitude & "<br>
<b>Long: </b>" & Location.Longitude & "<br>
<b>Alt: </b>" & Round(Location.Altitude, 2) & " m"
Gelişmiş bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
Size | 21 |
BorderStyle | BorderStyle.Solid |
BorderThickness | 2 |
Genişlik | 560 |
Yükseklik | 576 |
PaddingTop | 16 |
PaddingRight | 16 |
PaddingBottom | 16 |
PaddingLeft | 16 |
HtmlText'e gönderilen öğeleri incelerseniz, kullanılan iki algılayıcı türü olduğunu görebilirsiniz.
İlk olarak, aygıttan pusula başlığı sağlamak için başlık özelliğini kullanan Pusula algılayıcısı olur.
İkincisi Enlem, boylam ve yüksekliği sağlayan konum algılayıcısının yer algılayıcısı. Konumla ilgili iki önemli nokta vardır. İlk olarak, nokta operatörü ve özellik olmadan yalnızca konum kullanırsanız, enlem, boylam ve yükseklik için alanları olan bir kayıt alırsınız. İkincisi, yükseklik özelliği varsayılan olarak metredir. Feet olarak dönüştürmek isterseniz aşağıdaki formülü değiştirin:
Metreyi kullan:
Round(Location.Altitude, 2) & " m"
Feet kullan:
Round(Location.Altitude \* 3.2808, 2) & " ft"
Not
Power Apps Studio Uygulamasının içinde önizleme yaptığınızda, çoğu algılayıcı özelliği doğru çalışmayabilir. Test için algılayıcı özellikleriyle çalışmak üzere, bunun yerine cep telefonu kullanmayı tercih edin.
Şimdi, HTML metni denetimini ekranın yarısının alt kısmına yerleştirin.
NFC scan ve HTML metni denetimi için Düğme ekleme
NFC scan düğmesi
Son adımda eklediğiniz HTML metni denetiminin altına gelecek şekilde uygulamaya bir düğme ekleyin ve Gelişmiş bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
OnSelect | ClearCollect(colNFCScan, ReadNFC()) |
Metin | "Tarama NFC etiketi" |
OnSelect özelliğindeki kod, NFC okuyucuyu etkinleştiren ReadNFC() işlevini kullanıyor. Daha sonra colnfcscan adlı bir koleksiyonda NFC etiketinden okunan öğeleri saklar. Bu koleksiyonda dört alan olacak: RTD, Metin, TNF ve URI. Bu alanların tam açıklaması Bu makalenin kapsamının dışında olduğundan, bazı açıklamalar yararlı olabilir. TNF, tür adı biçimine ve metin ve/veya URI alanlarında içerilen kayıt türünü tanımlayan kayıt türü tanımının veya RTD'nin yapısını tanımlamak için kullanılır. URI, esas olarak bir kaynağın adresi olan Tekdüzen Kaynak tanımlayıcısı anlamına gelir. Bu örnekte kullanılan NFC etiketleri için, bu konu giriş listesinden alınan örnek metni içeren Metin alanına ek olarak, TNF değeri olarak 1, RTD değeri T ve boş URI değeri bulunur.
NFC tarama bilgilerini görüntülemek için HTML metni denetimi ekleme
İkinci bir HTML metni denetimi ekleyin ve HTMLText özelliğinde şu formülü kullanın:
"<b><u>Next Destination</u></b><br>
<br>" &
First(colNFCScan).Text
Gelişmiş bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
Size | 21 |
BorderStyle | BorderStyle.Solid |
BorderThickness | 2 |
Genişlik | 560 |
Yükseklik | 248 |
PaddingTop | 16 |
PaddingRight | 16 |
PaddingBottom | 16 |
PaddingLeft | 16 |
Herhangi bir NFC verisi olmazsa denetim bir sonraki hedefi görüntüler. Bir NFC etiketi tarandığında, sonraki hedefi görüntüler ve sonra taramadan toplanan verilerdeki metin alanından alınan verileri bu verilerle doldurur.
Bildirimde açıklanan NFC etiketlerine yönelik verilerin yapılandırıldığı varsayılarak, Kullanıcı bu etiketlerden birini taradıktan sonra bir sonraki pusula başlığı, enlem ve boylam değerlerini bir dahaki kayıt yerleşim arayana yeri için görürler.
Uygulamayı sınama
Uygulamayı kaydedin ve yayımlayın. Gerekli algılayıcıları bulunan bir mobil cihazda, uygulamayı açın ve pusula başlığı, enlem, boylam ve yükseklik değerlerine uyun. Çeşitli yol okumalardan değişiklikleri görmek için çeşitli yönleri etkinleştirirken yürüyen bir hareket yapmayı deneyin.
nfc Okuyucu denetimine gitmek için, NFC Etiketini tara düğmesine basın. Bir metin değeri üretebileceği bir NFC etiketseniz uygulamadaki metni görmek için etiketi tarayın. Değilse iptal'i seçin.
İkinci ekran ekleme ve yapılandırma
Uygulamanın açı ölçüm bölümü için yeni bir boş ekran ekleyin.
Ekranı ekledikten sonra, ilk ekrana dönün ve + Ekle > Simgelerden, Sonraki oku seçin ve Sonraki ok simgesini seçin. Bunu ekranın sağ üst köşesine yerleştirin ve Gelişmiş bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
OnSelect | Navigate(Screen2) |
Renk | RGBA(255, 255, 255, 1) |
Yeni eklenen ikinci ekranı yeniden adlandırdıysanız, Screen2 için bu adı Bul işlevinde kullanın.
Henüz eklenen boş ekrana gidediğini doğrulamak için eklenen simgeyi seçerek uygulamanın önizlemesine bakın.
X ve Y açıları yapılandırma Ekle
Ekleme bölmesinden sürükleyip bırakarak ekrana bir metin etiketi ekleyin. Bunu ekranın sol üst köşesine yerleştirin ve Özellikler bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
Metin | "2 eksen düzeyi" |
Yazı tipi boyutu | 24 |
Yazı tipi kalınlığı | FontWeight.Semibold |
Metin hizalama | Align.Center |
Genişlik | Parent.Width |
Sonra Gelişmiş bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
Renk | RGBA(255, 255, 255, 1) |
Doldur | RGBA(56, 96, 178, 1) |
Bu, ikinci ekran için bir başlık sağlayacaktır.
Ardından, Geri Ok simgesini + Ekle > Simgeler'den seçin ve Geri Ok simgesini seçin. Bunu ekranın sol üst köşesine yerleştirin ve Gelişmiş bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
OnSelect | Navigate(Screen1) |
Renk | RGBA(255, 255, 255, 1) |
Yeni eklenen birinci ekranı yeniden adlandırdıysanız, Screen1 için bu adı Bul işlevinde kullanın.
Son olarak, bir HTML metin denetimi ekleyin. Bu, tüm cihaz algılayıcı çıktılarını tek bir yerde görüntülemek için kullanılacaktır. HTML metin özelliğinde aşağıdaki formülü kullanın:
"<b><u>Angles:</u></b><br>
<br>
<table width='100%'>
<tr>
<td width='50%'><b>X: </b>" & Abs(Round(Acceleration.X * (90 / 9.81),
0)) & Char(0176) & "</td>
<td width='50%'><b>Y: </b>" & Abs(Round(Acceleration.Y * (90 / 9.81),
0)) & Char(0176) & "</td>
</tr>
</table>"
Gelişmiş sekmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
Size | 21 |
BorderStyle | BorderStyle.Solid |
BorderThickness | 2 |
Genişlik | 560 |
Yükseklik | 168 |
PaddingTop | 16 |
PaddingRight | 16 |
PaddingBottom | 16 |
PaddingLeft | 16 |
Bu denetimi uygulama ekranının üst tarafına yakın bir konuma getirin.
HtmlText'e ne konulacağını incelerseniz , X ve Y özellikleriyle Hızlandırıcı algılayıcıyı kullandığınızı fark edebilirsiniz. Bu senaryoda kullanmadığımız bir Z özelliği de vardır.
Bu algılayıcı, cihazda üç düzlem üzerinden yer alan güçleri algılar. Örnek olarak bir cep telefonu kullanarak, telefonun kenarlarından uzaklaştırçıkan bir çizgiyi düşünün. Bu, X düzlemi olabilir. Telefonun sağ tarafını kaldırma olumlu bir değer verir ve sol tarafı yeniden yapmak negatif bir değer üretecektir. Telefonu en üstünden ve en alttan genişleyen bir çizgi, Y düzlemini temsil eder. Telefonun üst tarafını kaldırma olumlu bir değer verir ve alt tarafı yeniden yapmak negatif bir değer üretecektir. Son olarak, ekrandan çıkan bir çizgi ve telefonun arkası, Z düzlemini temsil eder. Ekranın yukarı dönük olarak ortaya çıkarmasına neden olarak olumlu bir değer üretecektir ve bu değerin aşağıya doğru olması olumsuz bir değere yol açar.
İvme ölçer, aygıtı bıraktığınız gibi, daha önce açıklanan eksenlerde veya birden çok eksende aygıtı eğme gibi, cihazda çalışan her ikisi de gibi hareket eder. Kullanılmadığı sırada, teorik değerler 0 ve +/- 9,81 m/s2 arasında olmalıdır. 0, göreli eksenin Dünya'ya paralel olduğunu, yer çekiminin algılayıcı üzerinde etkisinin olmadığını gösterir. 9,81 değeri ise göreli eksenin Dünya'ya dikey olduğunu ve tam yer çekiminin algılayıcı üzerinde etkili olduğunu belirtir.
Daha önce eklediğiniz HTML metni denetimindeki koda bakarken aşağıdaki bölüme dikkat edin:
Abs(Round(Acceleration.X * (90 / 9.81), 0))
Bu formülde, içinden dışarıya, ilk olarak, X düzleminin ivmesi, (90/9,81) ile çarpılır. Bu, algılayıcıyı okumayı dereceye dönüştürmek için en fazla hareketsiz değeri teorik olarak kullanıyor. 90 değeri, en fazla teorik değer olarak, aygıtın bu düzlemdeki dünyaya dikey olduğu ve 90 derecelik bir ölçü verilerek olduğu için vardır.
Bu değer dereceye kadar, tam bir tamsayı derecelik değer sağlamak için sıfır ondalık basamağa yuvarlanır. Son olarak, bu yuvarlanmış sayının mutlak değeri olumlu bir okuma vermek için hesaplanır. Bu, açının bir tarafı veya diğerini ölçtüğünüz bir önemi olmaz.
Not
Yukarıda paylaşılan değerler ise yaklaştırılmaz ve tam ölçüyü temsil etmez.
Düzey görselleri ekleme
Bu adımda, bazı denetimleri görsel bir hedef elde etmek için hiç standart olmayan yollarla kullanacağız.
Dairesel kabarcık düzeyinde görsel gibi
Başlamak için, ekrana bir Düğme denetimi ekleyin, dosyayı btnCircleLevel olarak yeniden adlandırarak ve Gelişmiş bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
Metin | "" |
BorderColor | RGBA(56, 96, 178, 1) |
FocusedBorderThickness | 2 |
Doldur | Saydam |
DisabledFill | Self.Fill |
X | (Parent.Width - Self.Width) / 2 |
Y | (Parent.Height - Self.Height) / 2 |
Genişlik | 400 |
Yükseklik | Self.Width |
Bu değişikliklerin sonucu, ekranın ortasında, devre dışı bırakılmaması nedeniyle bastığınız bir dairesel düğme oluşturacaktır.
Ardından bir Daire şekli ekleyin, Kenarlık Yarıçapını 400 olarak ayarlayın ve Gelişmiş bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
FocusedBorderThickness | 0 |
X | (Parent.Width - Self.Width) / 2 + (Round(Acceleration.X / 9,81 * 90, 0) / 90 * btnCircleLevel.Width / 2) |
Y | (Parent.Height - Self.Height) / 2 - (Round(Acceleration.Y / 9,81 * 90, 0) / 90 * btnCircleLevel.Width / 2) |
Genişlik | 42 |
Yükseklik | Self.Width |
Genişlik | 400 |
Yükseklik | Self.Width |
X ve Y özellikleri , daire şeklinin uygulama ekranının Merkezi hakkında, ivme algılayıcısı değerlerinde göreli değişiklik olacak şekilde taşınmasına izin verir, ancak btncirclelevel'ın dairesel alanında yer alır.
X ve Y ekseni kabarcık düzeyi benzeri görseller
Uygulamaya bir Kaydırıcı denetimi ekleyin, sldXValue olarak adlandırın ve Gelişmiş bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
Minimum | -90 |
Maksimum | 90 |
Varsayılan | Round(Acceleration.X * (90 / 9,81), 0) |
ValueFill | Self.RailFill |
X | (Parent.Width - Self.Width) / 2 |
Y | btnCircleLevel.Y + btnCircleLevel.Height + 30 |
Genişlik | btnCircleLevel.Width |
Yükseklik | 70 |
Bu Kaydırıcı denetimi, bir kabarcık düzeyinin nasıl yapılacağıyla benzerlik gösteren açıyı görüntüler: tutamaç, kabarcık düzeyindeki hava balona benzer şekilde aygıtın kabarık tarafına doğru hareket eder.
Ardından, btnCircleLevel'ı seçerek kopyalayın, CTRL + C ve sonra da CTRL + V tuşlarına basın. Denetimi btnXValueOverlay olarak yeniden adlandırın ve gelişmiş bölmesinde aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
X | sldXValue.X - sldXValue.HandleSize / 2 |
Y | sldXValue.Y |
Genişlik | sldXValue.Width + sldXValue.HandleSize |
Yükseklik | sldXValue.Height |
Bu değişiklikler, bu değişiklikleri sldXValue kontrolünün üzerinde konumleyecektir ve kullanıcının değerini değiştirmesini ve bir görsel kenarlık sağlamamesini önler.
btnCircleLevel'ı kopyalamak için kullanılan aynı yöntemi kullanarak sldXValue'yu kopyalayıp yapıştırın. sldYValue olarak yeniden adlandırın ve aşağıdaki özellikleri değiştirin:
Özellik | Value |
---|---|
Düzen | Layout.Vertical |
X | btnCircleLevel.X - Self.Width - 30 |
Y | (Parent.Height - Self.Height) / 2 |
Genişlik | sldXValue.Height |
Yükseklik | sldXValue.Width |
btnXValueOverlay kopyalayıp yapıştırın, btnYValueOverlay olarak yeniden adlandırıp aşağıdaki özelliklere değiştirin:
Özellik | Value |
---|---|
X | sldYValue.X |
Y | sldYValue.Y - sldYValue.HandleSize / 2 |
Genişlik | sldYValue.Width |
Yükseklik | sldYValue.Height + sldYValue.HandleSize |
Bu, kabarcık düzeyi benzeri görselleri tamamlar.
Düzey uygulamasını test edin
Uygulamayı kaydedin ve yayımlayın. Gerekli algılayıcıları bulunan bir mobil cihazda, uygulamayı açın ve kabarcık düzeyinde görsellerle ekrana gidin. Aygıtı soldan sağa, sonra yukarı ve aşağı ve son olarak tüm yönlerde eğerek açılı özelliklerin yanı sıra görsellerindeki değişiklikleri de belirtin. Aygıtı üzerine yerleştirmek için açılı bir yüzey bulun ve bunların açılarını ve görsellerini yeniden not alın.