Я пытаюсь настроить приложение для SM-R800, которое можно носить с помощью tizen 4.0 (часы Samsung Galaxy), которое будет отображать касание при регистрации в дополнение к отображению внешнего освещения и давления окружающей среды.(Это сделано в C #)
Я пытался использовать класс Window
, чтобы попытаться передать мои аргументы события касания, потому что не похоже, что класс "Просмотр" способен сделать это в соответствии сдоступная документация Tizen.
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
// using ElmSharp; can't be used because it is redundant with Xamarin forms namespace
using Xamarin.Forms;
using Tizen.Wearable.CircularUI.Forms;
using Tizen.Sensor;
using Tizen.NUI;
namespace TizenWearableApp6
{
public class App : Application
{
LightSensor sensor;
Label textlabel;
PressureSensor sensor2;
Label barometer_label;
//Touch touch;
public Vector2 startPos;
public Vector2 direction;
//Label m_Text;
protected override void OnStart()
{
//base.OnCreate();
//Initialize();
}
public App()
{
/*
Window window = Window.Instance;
window.TouchEvent += WindowTouched;
//touch = new Touch(); //this line has to be in a method like "public App()"
m_Text = new Label
{
HorizontalTextAlignment = TextAlignment.Center
};
void WindowTouched(object sender, Window.TouchEventArgs e)
{
m_Text.Text = "I have been touched!";
} */
if (PressureSensor.IsSupported)
{
sensor2 = new PressureSensor(); //instantiate HERE
barometer_label = new Label
{
HorizontalTextAlignment = TextAlignment.Center
};
sensor2.Start(); //Barometer sensor
sensor2.DataUpdated += OnDataUpdated2; //Subscribed event handler (OnDataUpdated2) to event (DataUpdated)
void OnDataUpdated2(object sender, PressureSensorDataUpdatedEventArgs e) // event handler for humidity
{
barometer_label.Text = "Ambient pressure Level: " + e.Pressure;
}
}
else
{
barometer_label = new Label()
{
HorizontalTextAlignment = TextAlignment.Center,
Text = "Does not exist"
};
}
//-----------------Light Sensor------------------------
sensor = new LightSensor(); //"new" because I'm instantiaing a new object of the light sensor class
textlabel = new Label
{
HorizontalTextAlignment = TextAlignment.Center
};
sensor.Start(); //Light sensor
sensor.DataUpdated += OnDataUpdated1; //Subscribed event handler (OnDataUpdated1) to event (DataUpdated)
void OnDataUpdated1(object sender, LightSensorDataUpdatedEventArgs e) //event handler
{
textlabel.Text = "Light level: " + e.Level;
}
// The root page of your application
MainPage = new CirclePage
{
Content = new StackLayout
{
VerticalOptions = LayoutOptions.Center,
Children = {
textlabel,
barometer_label,
//m_Text
}
}
};
}
/* protected override void OnStart()
{
// Handle when your app starts
} */
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
}
}
С помощью приведенного выше кода я закомментировал то, что пытался (безуспешно), и просто оставил части своего кода, которые работают.Я ожидаю увидеть обновления в реальном времени окружающего света, давления и ожидаю строку, которая говорит: «Я был тронут!»каждый раз, когда я нажимаю на часы.
То, что я на самом деле получаю (при условии, что я просто использую то, что у меня есть выше), это обновление в реальном времени окружающего света и давления окружающей среды, но в тот момент, когда я раскомментирую свой класс Window
, я получаю «Out offrame "error и если я ТОЛЬКО раскомментирую свою метку m_Text
в дочерних элементах VerticalOptions
, и когда я объявляю" Label m_Text ", я получаю ошибку ошибки сегментации.
Обратите внимание, что некоторые изкомментарии могут показаться произвольными, потому что я оставил некоторые вещи, которые я пробовал ранее, и не обязательно означает, что я ВСЕ раз не прокомментировал.
Наконец, было бы полезно узнать, что я новичок в C #, Tizen и Microsoft Visual Studio, поэтому я обязательно задам много вопросов для начинающих.