Страницы

Поиск по вопросам

Показаны сообщения с ярлыком windows-phone-8. Показать все сообщения
Показаны сообщения с ярлыком windows-phone-8. Показать все сообщения

четверг, 23 января 2020 г.

VK SDK Серверные методы API как вызывать?

#java #android #c_sharp #вконтакте #windows_phone_8


Добрый вечер)
Пишу небольшое приложение с использованием VK SDK. Необходимы серверные методы API
secure.* (например secure.sendNotification). Для их вызова нужно получать другой token
с помощью специальной схемы, которая плохо описана в документации. 

'https://oauth.vk.com/access_token?client_id=' + CLIENT_ID + '&client_secret=' +
CLIENT_SECRET + '&v=5.50&grant_type=client_credentials'


где я вставляю свой client_id и client_secret. Только не знаю, как вызвать этот запрос
и получить обратно токен, чтобы его использовать в методах secure.* .

Может быть кто-то знает, как это сделать? Можно пример и на java и на C#.
    


Ответы

Ответ 1



Вот рабочий пример на Java с помощью либы OkHttp: Thread thread = new Thread() { @Override public void run() { try { OkHttpClient client = new OkHttpClient.Builder().build(); Request.Builder request = new Request.Builder(); String CLIENT_ID = "Цифры тут из настроек приложения в ВК"; String CLIENT_SECRET = "Секретный код из настроек приложения в ВК"; request.url("https://oauth.vk.com/access_token?client_id=" + CLIENT_ID + "&client_secret=" + CLIENT_SECRET + "&v=5.50&grant_type=client_credentials"); Response response = client.newCall(request.build()).execute(); String answer = response.body().string(); Log.e("LOG", answer); } catch (IOException e) { e.printStackTrace(); } } }; thread.start(); Выведет это: {"access_token":"sdfsdfsdfsdfsdf8sdfsdfsdfsdfsdfsdfsdf","expires_in":0} Так что вам надо лишь прочитать ответ ВК на ваш запрос. Вот тут есть ещё примеры Java кода по вытаскиванию инфы из ответа, получаемого по URL: тык Собственно, эту же строку-ответ ВК вы можете увидеть и просто вбив получившийся адрес в браузер.

среда, 22 января 2020 г.

Добавление собственных провайдеров учетных записей в Windows Phone

#c_sharp #windows_phone_8 #windows_phone_7


Приобрел недавно девайс на базе Windows Phone 8, и заметил интересную вещь. 
В системных настроках есть возможность привязки различных учетных записей - Windows
Live, Twitter, Facebook, Skype для последующей синхронизации контактов и прочего.
Также на телефонах от Nokia (под управление Windows Phone 7.5) есть возможность подключения
учетных записей Nokia, и T-Mobile (телефон куплен в Германии). Выглядит это примерно так:

Каким образом можно добавить сюда собственный провайдер для последующей сихронизации
контактов? 
Покопавшись на MSDN нашел упоминание о возможности создания Contact Store для своего
приложения, с возможностью отображения контактов в общем, системном списке. Но там
ни слова о системной странице настроек! С примерами тоже крайне скудно.
Может кто-то сталкивался?     


Ответы

Ответ 1



Действительно, в Windows Phone 8 приложение может создавать и изменять свои собственные контакты. Эти контакты впоследствии видны в People Hub. При этом вы можете управлять, будут ли доступны контакты для редактирования в People Hub, а также могут ли другие приложения читать полную информацию о контактах. "Добавлять" такие приложения с собственными контактами из страницы настроек нельзя. По поводу примеров — вот тут есть базовые примеры: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207024(v=vs.105).aspx Хорошие и полные примеры работы с контактами есть в этой книге: Windows Phone 8 Development Internals

пятница, 27 декабря 2019 г.

Измерение магнитной индукции сенсорами смартфона

#c_sharp #windows #uwp #windows_10 #windows_phone_8


Я не сильна в физике и, в связи с этим, у меня возник вопрос о том, как программно
реализовать измерение магнитной индукции сенсорами мобильных устройств? В частности,
как можно реализовать это на устройствах на базе Windows Phone и Windows 10 Mobile?
    


Ответы

Ответ 1



К магнитометру на Windows 10 Mobile можно легко получить доступ с помощью такого простого кода: var magnetometer = Windows.Devices.Sensors.Magnetometer.GetDefault(); if (magnetometer != null) { magnetometer.ReportInterval = 500; magnetometer.ReadingChanged += (Magnetometer sender, MagnetometerReadingChangedEventArgs args) => { System.Diagnostics.Debug.WriteLine("X: {0} Y: {1} Z:{2}", args.Reading.MagneticFieldX, args.Reading.MagneticFieldY, args.Reading.MagneticFieldZ); }; } Как из данного вектора получить гауссы или теслы, оставлю для исследования Вам. Проверял на Lumia 950, подносил неодимовый магнит (достаточно мощный), магнитометр начинает реагировать на него сантиметров с 15, но данные меняются немного стохастически (но меняются 100%). С большой степенью вероятности, будет работать и на других W10M телефонах. Касательно же точности и чувствительности сенсора, встроенного в телефон, я не уверен (нет данных); если есть потребность в высокой точности, то, боюсь, придется использовать внешний высокоточный сенсор с микрокопьютером типа RaspberyPi (а связь с телефоном организовать через TCP/IP или BT).

четверг, 11 июля 2019 г.

Падение приложения при возврате после перехода по внешней ссылке

Разрабатываю приложение для Windows Phone системы, на странице имеется кнопка типа HyperlinkButton , при ее нажатии приложение переходит на определенный Url запуская стандартный браузер, после этого приложение закрывается, и нельзя вернуться в него нажав кнопку Back.
Так же, при совершении данной операции через проект запущенный в VS 12 кнопка Back возвращает в приложение. Но если сделать те же действия в приложении запущенном не через VS(через это приложение задеплоиное на телефоне) то оно закрывается.
В чем может быть причина? В каком направлении копать?
Провел эксперимент с состояниями(suspending /resuming), только на этой станице где переход по Url осуществляется происходит такое, на других все работает нормально. При переходе в suspending все хорошо, как только делаю resuming - валится ошибка такая.
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in WinRT information: GetNavigationState doesn't support serialization of a parameter type which was passed to Frame.Navigate. A first chance exception of type 'Name.Common.SuspensionManagerException' occurred in A first chance exception of type 'Name.Common.SuspensionManagerException' occurred in mscorlib.ni.dll A first chance exception of type 'Name.Common.SuspensionManagerException' occurred in mscorlib.ni.dll


Ответ

В общем то немного покопав информации в интернетах нарыл такую вещь, что при переходе из одной страницы на другую( посредством Frame.Navigate) необходимо передавать в качестве параметра простейшие данные(строки, числа), большие объекты программа при сворачивании в стек не записывает, оттого и валится такая ошибка.

пятница, 5 июля 2019 г.

Как на эмулятор закачать картинки/фотографии?

Как на эмулятор Windows Phone 8 закачать картинки/фотографии с компьютера (не из своей программы)?


Ответ

Создайте папку TestImages в проекте и добавьте туда изображения. Установите значение Build action в Content на файлы в свойствах Visual Studio Измените .csproj (правый клик на проекте, 'Unload Project' потом правый клик, 'edit .csproj') Добавьте условие настройки в строки, которые включают файлы в проекте, как этот: Добавьте следующий код в App constructor #if DEBUG if (Microsoft.Devices.Environment.DeviceType == DeviceType.Emulator) { EmulatorHelper.AddDebugImages(); } #endif Добавьте класс EmulatorHelper using System; using System.Collections.Generic; using System.IO.IsolatedStorage; using Microsoft.Xna.Framework.Media;
namespace MyPhotoApp { public static class EmulatorHelper { const string flagName = "__emulatorTestImagesAdded";
public static void AddDebugImages() { bool alreadyAdded = CheckAlreadyAdded(); if (!alreadyAdded) { AddImages(); SetAddedFlag(); } }
private static bool CheckAlreadyAdded() { IsolatedStorageSettings userSettings = IsolatedStorageSettings.ApplicationSettings;
try { bool alreadyAdded = (bool)userSettings[flagName]; return alreadyAdded; } catch (KeyNotFoundException) { return false; } catch (ArgumentException) { return false; } }
private static void SetAddedFlag() { IsolatedStorageSettings userSettings = IsolatedStorageSettings.ApplicationSettings; userSettings.Add(flagName, true); userSettings.Save(); }
private static void AddImages() { string[] fileNames = { "img1", "img2", "img3", "img4", "img5" }; foreach (var fileName in fileNames) { MediaLibrary myMediaLibrary = new MediaLibrary(); Uri myUri = new Uri(String.Format(@"TestImages/{0}.jpg", fileName), UriKind.Relative);
System.IO.Stream photoStream = App.GetResourceStream(myUri).Stream; byte[] buffer = new byte[photoStream.Length]; photoStream.Read(buffer, 0, Convert.ToInt32(photoStream.Length)); myMediaLibrary.SavePicture(String.Format("{0}.jpg", fileName), buffer); photoStream.Close(); } } } } Теперь у Вас есть проект, который автоматически добавляет тестовые изображения в фотогалерею, при условии, что: build Configuration установлена в 'Debug' приложение запущено в эмуляторе изображения еще не были добавлены Преимущество в том, что это не влияет на Release XAP по производительности или размеру. Источник

воскресенье, 30 июня 2019 г.

Ошибка при прохождении сертификата Windows Store

В общем, пытаюсь сделать appx файл через VS. После компиляции пытаюсь пройти сертификацию, валится на таком:
Проверка конфигурации отладки
ОШИБКА Конфигурация отладки Обнаружена ошибка: При тестировании конфигурации отладки обнаружены следующие ошибки: Построение двоичного файла FFF.exe выполнено в режиме отладки. Последствия, если проблема не устранена: Магазин Windows Phone не разрешает отлаженные версии приложений. Инструкции по исправлению: Убедитесь, что приложение не связано с отлаженными версиями платформы и создано на основе конфигурации выпуска.
Суть в чем, Release мод стоит:
Что вообще VS хочет от меня?


Ответ

В общем, проблема была в том что в одном из двух проектов не была выставлена галочка: Optimize code. Пруф на English SO

суббота, 22 июня 2019 г.

Как корректно проверить доступность Интернет?

Как корректно проверить доступность сети Интернет в мобильном приложении?
Включен ли доступ в Интернет на телефоне, и, даже если включен, доступна ли сеть (есть возможность загрузить или передать информацию через сеть).


Ответ

var p = NetworkInformation.GetInternetConnectionProfile(); if (p != null && p.GetNetworkConnectivityLevel() >= NetworkConnectivityLevel.InternetAccess) { // ... }

пятница, 15 марта 2019 г.

VK SDK Серверные методы API как вызывать?

Добрый вечер) Пишу небольшое приложение с использованием VK SDK. Необходимы серверные методы API secure.* (например secure.sendNotification). Для их вызова нужно получать другой token с помощью специальной схемы, которая плохо описана в документации.
'https://oauth.vk.com/access_token?client_id=' + CLIENT_ID + '&client_secret=' + CLIENT_SECRET + '&v=5.50&grant_type=client_credentials'
где я вставляю свой client_id и client_secret. Только не знаю, как вызвать этот запрос и получить обратно токен, чтобы его использовать в методах secure.* .
Может быть кто-то знает, как это сделать? Можно пример и на java и на C#.


Ответ

Вот рабочий пример на Java с помощью либы OkHttp
Thread thread = new Thread() { @Override public void run() { try { OkHttpClient client = new OkHttpClient.Builder().build();
Request.Builder request = new Request.Builder();
String CLIENT_ID = "Цифры тут из настроек приложения в ВК"; String CLIENT_SECRET = "Секретный код из настроек приложения в ВК"; request.url("https://oauth.vk.com/access_token?client_id=" + CLIENT_ID + "&client_secret=" + CLIENT_SECRET + "&v=5.50&grant_type=client_credentials");
Response response = client.newCall(request.build()).execute();
String answer = response.body().string(); Log.e("LOG", answer); } catch (IOException e) { e.printStackTrace(); } } };
thread.start();
Выведет это:
{"access_token":"sdfsdfsdfsdfsdf8sdfsdfsdfsdfsdfsdfsdf","expires_in":0}
Так что вам надо лишь прочитать ответ ВК на ваш запрос. Вот тут есть ещё примеры Java кода по вытаскиванию инфы из ответа, получаемого по URL: тык
Собственно, эту же строку-ответ ВК вы можете увидеть и просто вбив получившийся адрес в браузер.

суббота, 9 марта 2019 г.

Добавление собственных провайдеров учетных записей в Windows Phone

Приобрел недавно девайс на базе Windows Phone 8, и заметил интересную вещь. В системных настроках есть возможность привязки различных учетных записей - Windows Live, Twitter, Facebook, Skype для последующей синхронизации контактов и прочего. Также на телефонах от Nokia (под управление Windows Phone 7.5) есть возможность подключения учетных записей Nokia, и T-Mobile (телефон куплен в Германии). Выглядит это примерно так: Каким образом можно добавить сюда собственный провайдер для последующей сихронизации контактов? Покопавшись на MSDN нашел упоминание о возможности создания Contact Store для своего приложения, с возможностью отображения контактов в общем, системном списке. Но там ни слова о системной странице настроек! С примерами тоже крайне скудно. Может кто-то сталкивался?


Ответ

Действительно, в Windows Phone 8 приложение может создавать и изменять свои собственные контакты. Эти контакты впоследствии видны в People Hub. При этом вы можете управлять, будут ли доступны контакты для редактирования в People Hub, а также могут ли другие приложения читать полную информацию о контактах. "Добавлять" такие приложения с собственными контактами из страницы настроек нельзя. По поводу примеров — вот тут есть базовые примеры: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207024(v=vs.105).aspx Хорошие и полные примеры работы с контактами есть в этой книге: Windows Phone 8 Development Internals

среда, 5 декабря 2018 г.

Измерение магнитной индукции сенсорами смартфона

Я не сильна в физике и, в связи с этим, у меня возник вопрос о том, как программно реализовать измерение магнитной индукции сенсорами мобильных устройств? В частности, как можно реализовать это на устройствах на базе Windows Phone и Windows 10 Mobile?


Ответ

К магнитометру на Windows 10 Mobile можно легко получить доступ с помощью такого простого кода:
var magnetometer = Windows.Devices.Sensors.Magnetometer.GetDefault(); if (magnetometer != null) { magnetometer.ReportInterval = 500; magnetometer.ReadingChanged += (Magnetometer sender, MagnetometerReadingChangedEventArgs args) => { System.Diagnostics.Debug.WriteLine("X: {0} Y: {1} Z:{2}", args.Reading.MagneticFieldX, args.Reading.MagneticFieldY, args.Reading.MagneticFieldZ); }; }
Как из данного вектора получить гауссы или теслы, оставлю для исследования Вам.
Проверял на Lumia 950, подносил неодимовый магнит (достаточно мощный), магнитометр начинает реагировать на него сантиметров с 15, но данные меняются немного стохастически (но меняются 100%).
С большой степенью вероятности, будет работать и на других W10M телефонах.
Касательно же точности и чувствительности сенсора, встроенного в телефон, я не уверен (нет данных); если есть потребность в высокой точности, то, боюсь, придется использовать внешний высокоточный сенсор с микрокопьютером типа RaspberyPi (а связь с телефоном организовать через TCP/IP или BT).