samsung / tizenfx Goto Github PK
View Code? Open in Web Editor NEWC# Device APIs for Tizen
License: Apache License 2.0
C# Device APIs for Tizen
License: Apache License 2.0
Hello,
I am Samsung Project Leader and developer.
I faced an issue with NFC activation in C# API:
NfcManager.SetActivationAsync(true);
I have received following error while installing app on Galaxy Watch:
key[error] val[-14] error message: :Check tizen-manifest.xml| - Current api-version = 4, | certificate signature level = partner||[MISMATCHED_PRIVILEGE_LEVEL]| - http://tizen.org/privilege/nfc.admin| >> Use at least platform signatured certificate.||:<-7>
The documentation points out that I need to use PARTNER certificate level, but above error message tells that I need to use PLATFORM cert level.
https://developer.tizen.org/development/guides/.net-application/connectivity-and-wireless/nfc#manager_activating_nfc_device
Can you please tell me what is the correct level and if the documentation is ok or invalid?
What is more Native and Web APIs
have PUBLIC level for the http://tizen.org/privilege/nfc.admin
https://developer.tizen.org/development/training/native-application/understanding-tizen-programming/security-and-api-privileges#wearable_native
Thanks in advance for help.
rc
Does the current VoiceControl API (.NET C#) support the wearable profile? All attempts to use this API while creating a wearable application have failed.
Even though PrivacyPrivilegeManager shows that I have access to http://tizen.org/privilege/mapservice, when I use
var request = _mapService.CreatePlaceSearchRequest(address, boundary);
var places = await request.GetResponseAsync();
UnauthorizedAccessException is thrown. I'm working on emulator version 5.0.
Here's very simple app that will show you exactly what I mean.
DemoMapService.zip
It use Marshal.AllocHGlobal
on constructor
But, anywhere not freed with Marshal.FreeHGlobal
TizenFX/src/Tizen.Security.TEEC/Tizen.Security.TEEC/Libteec.cs
Lines 726 to 743 in 3566375
I'm attempting to load a native library without success.
Just trying to access a system library, say: File.OpenRead("/system/lib/libc.so") segfaults. I can't enumerate files on
/or
/lib` so I'm assuming the app is sandboxed but Is there a way (even if permission is required) to load a system image?
A handle in foreach callback of native, will released when callback was completed,
So, You didn't got a handle ownership. It will be released by native.
If you release the handle, it is a double free
Dot indicating the item focus is moving on it own (when you select one option, click back button and and later open menu again).
Steps to reproduce:
Image version:
Model=Tizen5/Unified;
Build=tizen-unified_20181024.1;
Note that when using the same tpk file on image:
Model=Tizen4/Unified;
Build=tizen-4.0-unified_20190306.1;
after second cue button click, the dot indicates first item immediately (it does not move to it in a visible way)
(See this original question in stackoverflow for details.)
There's no equivalent of the native SENSOR_HUMAN_STRESS_MONITOR in Tizen.Sensor APIs and it looks like it's simply unsupported according to this guide.
Aren't the Tizen.Sensor types supposed to be in sync with the natively supported types (and vice versa)? If it's not available is there any alternative way to use?
static ResponseContext context = null;
PrivacyPrivilegeManager.GetResponseContext("some privilege").TryGetTarget(out context);
context.ResponseFetched += some_handler;
context.ResponseFetched -= some_handler; // context was removed from s_responseMap
context.ResponseFetched += some_handler; // It will not fired when Response was fetched
Currently there is no way to set flight mode nor do not disturb mode in TizenFX.
Also in case of do not disturb mode there seems to be no way to check whether it's enabled.
We need ability to set flight mode and do not disturb mode.
In app there is a new app control defined with AppControlOperations set to Pick. Mime is set to "audio/*". Later there is SendLaunchRequest executed with proper callback event handler.
At this point we are in music explorer and there is 3 filters at the top (Tracks, Artists, Albums). Switching between these 3 doesn't cause any problems. Also picking up single track from Tracks works. Problem is when user selects album or artist (without picking any particular track) and then user wants to change to another category (any of them). Application crashes and goes back to application that launched request. Couple of times it did crash also the application that launched it.
Code snippet:
var pickAppcontrol = new AppControl
{
Operation = AppControlOperations.Pick
};
pickAppcontrol.Mime = "audio/*";
AppControl.SendLaunchRequest(pickAppcontrol, MyFileSelectedCallback);
See also TNEXT-15229
Issue:
Installing TizenFX's RPM packages does NOT guarantee the behavior of TizenFX.
A Tizen image with TizenFX may FAIL with TCT tests unless image maintainers MANUALLY check and install all related packages. This is PROHIBITED behavior since Tizen 4.0. Which means TizenFX is not complying with Tizen.
Reason:
Suggestion:
Note that this is a CRITICAL problem for Tizen integration and build systems.
void Dispose(bool)
It should be protected virtual to allow extend.
But, ProxyBase/StubBase does not
Please refer this article
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/dispose-pattern
_handle should be always freed.
https://msdn.microsoft.com/ko-kr/library/system.runtime.interopservices.gchandle(v=vs.110).aspx
When the handle goes out of scope you must explicitly release it by calling the M:System.Runtime.InteropServices.GCHandle.Free method; otherwise, memory leaks may occur. When you free a pinned handle, the associated object will be unpinned and will become eligible for garbage collection, if there are no other references to it.
Performing UI operations at widget and mixing asynchronous tasks with them is unsafe. Awaiting on task that makes asynchronous calls doesn’t guarantee that execution resumes on the same thread (UI thread in this case). In contrast, full screen UI application works correctly.
Demonstrator shows this behavior logging thread Id before and after Delay. For widget it logs other id. Furthermore, I noticed widget has no implementation of synchronization context.
Nuget Packages:
Tizen.NET 5.0.0.14562
Tizen.NET.Sdk 1.0.1
Affected Devices:
FamilyHub
Tizen4/Unified 4.0.0 (arm)
VERSION = 4.0.0
CODENAME = Next
BUILD_ID=tizen-4.0-da-fhub4_20181219.1_FHUB4R-KM-US-RF9500-AD-RELEASE
The source of set to player by SetSource was reset when player was unprepared.
But i can't found any information about this behavior in documents
Is it normal operation?
Do you have any reason to this?
/// <summary>
/// Sets a media source for the player.
/// </summary>
/// <param name="source">A <see cref="MediaSource"/> that specifies the source for playback.</param>
/// <remarks>The player must be in the <see cref="PlayerState.Idle"/> state.</remarks>
/// <exception cref="ObjectDisposedException">The player has already been disposed of.</exception>
/// <exception cref="InvalidOperationException">
/// The player is not in the valid state.<br/>
/// -or-<br/>
/// It is not able to assign the source to the player.
/// </exception>
/// <seealso cref="PrepareAsync"/>
/// <since_tizen> 3 </since_tizen>
public void SetSource(MediaSource source)
Id of WidgetBase should be return a widget instance id
but actually returing a widget id instead of instance id
TrackObject is destoyed when ItemObject disappears on the screen.
But ItemObject doesn't recreate TrackObject when it reappears on the screen.
using System;
using ElmSharp;
namespace ElmSharp.Test
{
class TrackObjectTest : TestCaseBase
{
public override string TestName => "TrackObjectTest";
public override string TestDescription => "To test TackObject";
public override void Run(Window window)
{
Conformant conformant = new Conformant(window);
conformant.Show();
GenList list = new GenList(window)
{
Homogeneous = true,
AlignmentX = -1,
AlignmentY = -1,
WeightX = 1,
WeightY = 1
};
GenItemClass defaultClass = new GenItemClass("default")
{
GetTextHandler = (obj, part) =>
{
return string.Format("{0} - {1}", (string)obj, part);
}
};
for (int i = 0; i < 100; i++)
{
list.Append(defaultClass, string.Format("{0} Item", i));
}
list.SelectionMode = GenItemSelectionMode.Always;
list.Show();
list.ItemSelected += List_ItemSelected; ;
conformant.SetContent(list);
}
private void List_ItemSelected(object sender, GenListItemEventArgs e)
{
Log.Debug((string)(e.Item.Data) + "item selected");
Log.Debug("Item Geometry: " + e.Item.TrackObject.Geometry.ToString());
}
}
}
IEnumerable is provide more flexible interface and more familiar to C# developer.
any reason to use MediaDataReader?
When building TizenFX using the build instructions the build fails with the below error (it happens muliple times, but with the same error):
/p/misc/tizen/nui/dali-core/dali/public-api/signals/callback.h:235:31: error: cast between incompatible function types from ‘Dali::CallbackBase::Dispatcher’ {aka ‘void (*)(Dali::CallbackBase&)’} to ‘Dispatcher’ {aka ‘bool (*)(Dali::CallbackBase&, Dali::Actor, const Dali::WheelEvent&)’} [-Werror=cast-function-type]
/p/misc/tizen/nui/dali-core/dali/public-api/signals/callback.h: In instantiation of ‘static void Dali::CallbackBase::Execute(Dali::CallbackBase&, P1, P2, P3) [with P1 = Dali::Actor; P2 = bool; P3 = Dali::DevelActor::VisibilityChange::Type]’:
/p/misc/tizen/nui/dali-core/dali/public-api/signals/base-signal.h:384:46: required from ‘void Dali::BaseSignal::Emit(Arg0, Arg1, Arg2) [with Arg0 = Dali::Actor; Arg1 = bool; Arg2 = Dali::DevelActor::VisibilityChange::Type]’
/p/misc/tizen/nui/dali-core/dali/public-api/signals/dali-signal.h:1302:5: required from ‘void Dali::Signal<void(Arg0, Arg1, Arg2)>::Emit(Arg0, Arg1, Arg2) [with Arg0 = Dali::Actor; Arg1 = bool; Arg2 = Dali::DevelActor::VisibilityChange::Type]’
/p/misc/tizen/nui/dali-core/dali/internal/event/actors/actor-impl.cpp:1858:58: required from here
SRI-B Document part start to review doxygen tags of API Level 5 from this week.
@Samsung/TizenFX_admin and all developers
When they send you PRs, please confirm and approve them.
When disposing was true,
When disposing was false,
And SafeHandle is managed resource
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/dispose-pattern
Hello,
We develop the application based on Xamarin.Forms. Our application is hosted on github: https://github.com/SamsungDForum/JuvoPlayer
During memory profiling, we noticed that a number of ElmSharp.SmartEvent and ElmSharp.SmartEvent objects increases, every time we call a Xamarin.Forms.ImageSource.FromFile(string file) method.
On Tizen platform, Xamarin.Forms.ImageSource is based on ElmSharp.Image class.
We found 2 problems:
TizenFX/src/ElmSharp/ElmSharp/Image.cs
Lines 510 to 548 in 142bb47
Two SmartEvent objects are created in LoadAsync() method, however only one of them is disposed:
A simple fix for this issue is to dispose both events when one of them completes, for example:
public Task<bool> LoadAsync(string file, CancellationToken cancellationToken = default(CancellationToken))
{
if (file == null)
throw new ArgumentNullException("file");
Interop.Elementary.elm_image_async_open_set(RealHandle, true);
Interop.Elementary.elm_image_preload_disabled_set(RealHandle, false);
var tcs = new TaskCompletionSource<bool>();
var loadReady = new SmartEvent(this, RealHandle, "load,ready");
var loadError = new SmartEvent(this, RealHandle, "load,error");
cancellationToken.Register(() =>
{
loadReady.Dispose();
loadError.Dispose();
if (tcs != null && !tcs.Task.IsCompleted)
{
tcs.SetCanceled();
}
});
loadReady.On += (s, e) =>
{
loadReady.Dispose();
loadError.Dispose();
LoadingCompleted?.Invoke(this, EventArgs.Empty);
if (tcs != null && !tcs.Task.IsCompleted)
{
tcs.SetResult(true);
}
};
loadError.On += (s, e) =>
{
loadError.Dispose();
loadReady.Dispose();
LoadingFailed?.Invoke(this, EventArgs.Empty);
if (tcs != null && !tcs.Task.IsCompleted)
{
tcs.SetResult(false);
}
};
The method LoadAsync(Stream, CancellationToken) has the same problem.
TizenFX/src/ElmSharp/ElmSharp/SmartEvent.cs
Lines 71 to 78 in 142bb47
When SmartEvent is being created, it registers itself in "EventLifeTracker". However, it's not deregistered in Dispose method. We are able to workaround this problem by adding RemoveFromEventLifeTracker method to ElmSharp.EvasObject class and then call it in SmartEvent.Dispose, but this solution also requires modifications in ElmSharp.EvasObject.DisposeEvent and ElmSharp.EvasObject.MakeInvalidateEvent to avoid reentrancy issues.
// In: ElmSharp.EvasObject
internal void RemoveFromEventLifeTracker(IInvalidatable item)
{
_eventStore.Remove(item);
}
// In: ElmSharp.SmartEvent
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
_sender.RemoveFromEventLifeTracker(this);
}
if (_handle != IntPtr.Zero)
{
foreach (var cb in _nativeCallbacks)
{
Interop.Evas.evas_object_smart_callback_del(_handle, _eventName, cb.callback);
}
}
_nativeCallbacks.Clear();
}
From
SamsungDForum/Xamarin.DRMPlayer#1
Do you have any other ideas or workaround for use player with PlayReady?
There is some correlation with values x and y in gravity sensor. Keeping one of this values on stable level and simultaneously changing the other value causes jumps on first value in a moment of crossing zero.
It can be visible on smart watch in attached application.
org.tizen.example.Level-1.0.0.tpk.zip
tizen-release:
Tizen4/Unified 4.0.0 (arm)
VERSION = 4.0.0
CODENAME = Next
BUILD_ID=PLATFORM_PrdR500XX_20190315.002
Here is sample output. Value Y varies from 2 to 8 when X is close to 0.
logs.txt
ApplicationInfo.SharedDataPath and DirectoryInfo.SharedData return empty strings.
TizenFX/src/Tizen.Multimedia/AudioManager/AudioManager.cs
Lines 176 to 183 in 3566375
_audioDeviceStateChanged never same with value
null of _audioDeviceStateChanged is checked after removing value
_audioDeviceStateChanged -= value;
if (_audioDeviceStateChanged == null) {
UnregisterDeviceStateChangedEvent();
}
Current Tizen.Multimedia.Remoting API does not support Media Controller method to send custom command to a server. This option is availiable in Native API and for unknown reason has not been implemented in .NET version. This significantly limits the possibilities of using the Media Control API in applications. Is there any reason why the custom commands are not implemented? Is there any replacement for them?
Always failed to update Player.DisplaySettings.Mode in preparing state
There is no constraint in document to update Player.DisplaySettings.Mode
Currently to create RemoteView object we have to use ElmSharp.EvasObject:
RemoteViewFactory.Create(ElmSharp.EvasObject, String, ...).
There is no version of RemoteViewFactory.Create(...) method, that takes EflSharp object as a parameter. Hence, we are forced to use ElmSharp in EflSharp project.
We need a new version of RemoteViewFactory.Create(...) method, one that takes EflSharp object as a parameter
Hello,
Native API provides watch manager functionality. It allows to manage watch faces, display and control them. TizenFX does not provide any analogues. More information about watch manager can be found in the file watch_control.h.
TizenFX should provide a WatchManager API that allows a developer to work with watch faces without the need to reference native functions.
Please give this issue a higher priority because it blocks a very important project.
We needed Stepper in application that is vertical not horizontal. There was a renderer class made
because Stepper class does not have any attributes responsible for it.
At first it was working good, but later one of testers created an issue that this stepper should
also be editable (user can change input from mobile keyboard), so this was also changed in
VerticalStepper class. Almost everything was good except one thing :)
When the value is clicked it works properly, value highlights and keyboard pops up.
But when the value is clicked and the click is hold, value's color is set to white so on white background it dissapear.
Even though we found a way to omit the problem I'm writing about this to be considered to join
these features to Stepper class:
-vertical stepper
-editable stepper (that does not cause problem described above)
Both seems to be very common and used :)
See also - TNEXT-15244
This is related to #1056 but perhaps related to tooling and not the right place to raise.
I've created a blank Tizen Wearable 4 app and added a few lines to Main
:
var exists = File.Exists("/usr/lib/libc.so.6");
Console.WriteLine(exists);
foreach (var item in Directory.GetFiles("/usr/lib/"))
{
Console.WriteLine(item);
}
VS output panel says:
Loaded '[vdso]'. Cannot find or open the symbol file.
Loaded 'linux-gate.so.1'. Cannot find or open the symbol file.
Loaded 'JIT(0x809bd3f0)'. Cannot find or open the symbol file.
Loaded 'JIT(0x80be3d50)'. Cannot find or open the symbol file.
Loaded 'JIT(0x80b82090)'. Cannot find or open the symbol file.
Segmentation fault
The thread 0x1 has exited with code 0 (0x0).
The program 'sdb.exe' has exited with code 42 (0x2a).
Stepping through the code doesn't match the lines of code, as if it was debugging an old version of the app.
I've restarted the IDE and emulators, rebuilt the project (got rid of all previous builds) but still get the segfault.
I've tried removing the I/O lines I've added to get it back to the blank app template project and it stills segfaults.
I've tried running without a debugger and still segfaults.
Could I please get some guidance? Thanks.
Visual Studio 2017 15.9.16
.NET Core SDKs installed:
1.0.4 [C:\Program Files\dotnet\sdk]
1.1.8 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.400 [C:\Program Files\dotnet\sdk]
2.1.403 [C:\Program Files\dotnet\sdk]
2.1.509 [C:\Program Files\dotnet\sdk]
2.2.107 [C:\Program Files\dotnet\sdk]
2.2.300 [C:\Program Files\dotnet\sdk]
3.0.100 [C:\Program Files\dotnet\sdk]
Tizen Studio 3.3
Emulator:
Hardware CPU VT/GPU both ON
wearable-4.0-circle-x86
Emulator Manager:
Version: 2.5.91
Build: 20181001-2317
It is not possible to select the option in menu using the bezel. Even if the bezel is rotated slightly, focus moves only between last and first option.
Steps to reproduce:
Image version:
Model=Tizen5/Unified;
Build=tizen-unified_20181024.1;
Note that this functionality (the same tpk file) works fine on image:
Model=Tizen4/Unified;
Build=tizen-4.0-unified_20190306.1;
Hi everyone!
How can I use SQLite with Tizen.Net?
Hello,
I have a question regarding the EcoreSynchronizationContext.Post() method. According to the documentation, this method should dispatch an asynchronous message to a main loop, see:
/// <summary>
/// Dispatches an asynchronous message to a Ecore main loop.
/// </summary>
/// <param name="d"><see cref="T:System.Threading.SendOrPostCallback" />The SendOrPostCallback delegate to call.</param>
/// <param name="state"><see cref="T:System.Object" />The object passed to the delegate.</param>
/// <remarks>The Post method starts an asynchronous request to post a message.</remarks>
/// <since_tizen> preview </since_tizen>
public override void Post(SendOrPostCallback d, object state);
I would expect that my message will be added to the end of a main loop queue and called when all pending messages are processed. This would be consistent with other SynchronizationContext implementations, like: TizenSynchronizationContext or Nito.AsyncEx.AsyncContext.AsyncContextSynchronizationContext. However, EcoreSynchronizationContext behaves differently - a message is called synchronously if it is dispatched on a main loop thread, see:
EAPI void
ecore_main_loop_thread_safe_call_async(Ecore_Cb callback,
void *data)
{
Ecore_Safe_Call *order;
if (!callback) return;
if (eina_main_loop_is())
{
callback(data);
return;
}
Such behavior may cause reentrancy issues and it seems to be inconsistent with the documentation. Is it intentional?
EvasObject.Deleted event is not raised when I called Unrealized method.
using System;
using ElmSharp;
namespace ElmSharp.Test
{
class DeletedEventTest : TestCaseBase
{
public override string TestName => "DeletedEventTest";
public override string TestDescription => "To test Deleted event of EvasObject";
Button button2;
public override void Run(Window window)
{
Conformant conformant = new Conformant(window);
conformant.Show();
var box = new Box(window);
conformant.SetContent(box);
box.Show();
Button button1 = new Button(window)
{
Text = "Button 1",
AlignmentX = -1,
AlignmentY = -1,
WeightX = 1,
WeightY = 1
};
button2 = new Button(window)
{
Text = "Button 2",
AlignmentX = -1,
AlignmentY = -1,
WeightX = 1,
WeightY = 1,
};
box.PackEnd(button1);
box.PackEnd(button2);
button1.Show();
button2.Show();
button2.Deleted += Button_Deleted;
button2.Clicked += Button_Clicked;
}
private void Button_Clicked(object sender, EventArgs e)
{
Log.Debug("button2 clicked");
button2.Unrealize();
}
private void Button_Deleted(object sender, EventArgs e)
{
Log.Debug("button2 deleted");
}
}
}
https://developer.tizen.org/dev-guide/csapi/api/Tizen.Multimedia.Vision.BarcodeGenerator.html
No feature link in API documentation.
Also method GenerateImage(message, qrConfig, imageConfig, config) have an error in exception throwing:
throws Invalid Data Exception when trying to save image to a path with no permissions. In other cases it was throwing Invalid Path Exception. It was misleading when I was trying to solve why I can't generate image.
TizenFX/src/ElmSharp/ElmSharp/Widget.cs
Line 338 in 7dc4e67
/// Sets content to the particular part of the widget, and the preserve old content will be unsetdeleted.
You need call native handle release function
https://msdn.microsoft.com/ko-kr/library/system.runtime.interopservices.safehandle(v=vs.110).aspx
Nobody call native release function
TizenFX/src/Tizen.Account.AccountManager/Interop/Interop.Account.cs
Lines 36 to 37 in 3566375
Constructor of ComponentBasedApplicationBase
and WidgetApplication
has parameter with Dictionary<Type,string>
/// <summary>
/// Initializes the ComponentBasedApplicationBase class.
/// </summary>
/// <param name="typeInfo">The component type information.
/// The key should be a class type of FrameComponent or SubComponent subclass.
/// The value should be a component id which is declared in tizen-manifest.xml.
/// </param>
/// <since_tizen> 6 </since_tizen>
public ComponentBasedApplication(IDictionary<Type, string> typeInfo)
/// <summary>
/// Initializes the WidgetApplication class with the type and application ID.
/// </summary>
/// <param name="typeInfo">Map structure for the derived class type and widget ID.</param>
/// <since_tizen> 3 </since_tizen>
public WidgetApplication(IDictionary<Type, string> typeInfo)
As I opinion, I think id string should be a key and Type
should be a value on a dictionary.
First, Dictionary's key role is identifier, and ID
(component/widget) working as Identifier on tzen-minifest.
ID
(component/widget) should not be duplicated on dictionary.
but currently, ID
(component/widget) is value so, could be duplicated
new WidgetApplication(new Dictionary<Type, string>(){
[typeof(Widget1)] = "widget1",
// app developer miss type "widget1" instead of "widget2" but does not report error
[typeof(Widget2)] = "widget1"
});
Second, Type could NOT be duplicated on different ID
(component/widget)
but it should be, because Application developer want to handle with same code (type) for various widget/components.
new WidgetApplication(new Dictionary<Type, string>(){
[typeof(MultiFunctionWidget)] = "widget1",
// app developer want to handle mutiple widget with single class but can't
[typeof(MultiFunctionWidget)] = "widget2"
});
How about thinks this issue?
You always set native event handler by SttSetRecognitionResultCB
and always unset natvie event handler by SttUnsetRecognitionResultCB
But, Event can be added more than 1.
So, it is fail to below sequence
var client = SttClient();
client.RecognitionResult += EventHandler1;
client.RecognitionResult += EventHandler2;
// now EventHandler1 and EventHandler2 was working
....
client.RecognitionResult -= EventHandler1;
// now any event handler was not working
TizenFX/src/Tizen.Uix.Stt/Tizen.Uix.Stt/SttClient.cs
Lines 370 to 414 in 3566375
Hello,
We noticed that IME doesn't hide on Tizen TV. Basically, selecting 'Done' or 'Cancel' buttons does not work.
Environment: TIZEN-ONEMAIN-MuseM-RELEASE_20191104.4 (however, similar issues may be reproducible on older Tizen versions, see: https://github.com/Samsung/react-native-tizen-dotnet/pull/27#issuecomment-546654666)
TizenFX commit id: e546a65)
Steps to reproduce:
Result:
IME doesn't not hide
Expected result:
IME shall hide. Text shall be updated.
The Tizen.Network.Bluetooth.IBluetoothClientSocket.SendData(string) interface is limited to string transmissions, however a much more common scenario is to send byte arrays, and you probably encode the passed string to a byte array in the background anyway, so could you expose e.g. SendData(byte[] data) or provide any alternative getting byte arrays transmitted?
https://developer.tizen.org/development/guides/.net-application/personal-data/calendar
Above guide is full of mistakes and code that is unusable, for example:
"record.Set(CalendarViews.Event.Bymonthday, "3,4,5");"
you specify int to be set, then use string instead
How am I supposed to use all the enums specified (like CalendarTypes.Recurrence) when it's impossible to use them ("record.set<CalendarTypes.Recurrence>();" won't work)
Please update the guide or/and fix api, because there is no information available on how to properly use it.
I've tried both the API level 4 and 5 from Nuget, and both don't expose the Tizen.System.Power why is that so? Can this be changed?
Hello,
I am a Samsung developer, I found the following bug: The Badge API has a problem when we use Control Panel to simulate a new message - the BadgeControl.Changed event is not raised. Therefore, it is not possible to implement correct handling of new message notifications in the application.
CORRECT BEHAVIOR:
The number of notifications about missed calls has increased:
WRONG BEHAVIOR:
New message notification arrives:
Text message badge has not changed:
Can you fix this issue?
when I want to get data from GPS modules,my device has been set on,but the callback function always can't be excuted.So I can't get data from GPS modules.the code as below: wait for answer,tks sincerely.
e.g.
if(location_manager_set_service_state_changed_cb(location_manager, location_state_cb, NULL) == LOCATIONS_ERROR_NONE)
{
my_debug_print("wkqtest Location service callback added.");
}
// Starting service
if(location_manager_start(location_manager) == LOCATIONS_ERROR_NONE)
{
my_debug_print("wkqtest Location service started.");
}
}
// On shutdown of your service:
if (location_manager_unset_service_state_changed_cb(location_manager) == LOCATIONS_ERROR_NONE)
{
my_debug_print("wkqtest Location service callback removed.");
}
// It is not necessary to call location_manager_stop() just before calling
// location_manager_destroy because the service is stopped automatically
// before destruction.
if (location_manager_destroy(location_manager) == LOCATIONS_ERROR_NONE)
{
my_debug_print("wkqtest Location manager destroyed.");
location_manager = NULL;
}
///////////////////////////////
void location_state_cb(location_service_state_e state, void *user_data)
{
if (state == LOCATIONS_SERVICE_ENABLED)
{
my_debug_print("wkqtest Location service enabled.");
double altitude, latitude, longitude, climb, direction, speed;
double horizontal, vertical;
location_accuracy_level_e level;
time_t timestamp;
int err = location_manager_get_location(location_manager, &altitude, &latitude, &longitude,
&climb, &direction, &speed, &level,
&horizontal, &vertical, ×tamp);
if (err == LOCATIONS_ERROR_NONE)
{
my_debug_print("wkqtest Location: %f,%f,%f,%f,%f,%f,%f,%f", altitude, latitude, longitude, climb, direction, speed, level, horizontal, vertical);
}
else
{
my_debug_print("wkqtest Location error!");
//handle error here
}
}
if (state == LOCATIONS_SERVICE_DISABLED)
{
my_debug_print("wkqtest Location is disabled!");
}
}
Tizen.Multimedia.PlayerDisplaySettings.SetRoi didn't accept negative position.
But Application frequently use negative position when view was placed on scroller.
It seem to native layer issue
I/TIZEN_N_PLAYER( 2645): legacy_player.c: legacy_player_set_display_mode(1332) > [legacy_player_set_display_mode] mode:5
D/MM_PLAYER( 2645): mm_player_attrs.c: __mmplayer_apply_attribute(195) > param_name: display_method
D/MM_PLAYER( 2645): mm_player_priv.c: _mmplayer_update_video_param(2611) > param_name : display_method
D/MM_PLAYER( 2645): mm_player_priv.c: _mmplayer_update_video_param(2615) > check display surface type attribute: 0
D/MM_PLAYER( 2645): mm_player_priv.c: __mmplayer_update_wayland_videosink_video_param(2573) > param_name : display_method
D/MM_PLAYER( 2645): mm_player_priv.c: __mmplayer_video_param_set_display_method(2463) > set video param : method 5
E/MM_COMMON( 2645): mm_attrs_private.c: mmf_attribute_validate_int(351) > [mmf_attribute:display_win_roi_x] out of range[min 0, max 2
147483647, set -188]
Hi everyone!
How can I create a file in Tizen.Net?
If I use standard API, such as File.Create(..)
, I get Segmentation fault.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.