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.

Pusula başlığı enlem ve boylam değerleri

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.

Çeşitli yönleri etkinleştirirken izlemeyi 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.

Tarama NFC etiketi

İ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ı sınama

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.

Ayrıca bkz.