我正在开发一个Android应用程序以及为它编写C#Web Api.现在我可以使用下面的代码发送推送通知.但我必须发送一个json对象,其中包含一个图像的URL,以便当用户点击通知时,应用程序中的活动打开并使用该URL使用Picasso加载图像.我该怎么办?
private void SendPushNotifications(int userId)
{
string appId = "myAppId";
var request = WebRequest.Create("https://onesignal.com/api/v1/notifications") as HttpWebRequest;
var user = db.Users.FirstOrDefault(x => x.Id == userId);
if (user != null)
{
string message = "This job is posted by: \n" + user.Name + "\n" + user.Contact + "\n" +user.City;
if (request != null)
{
request.KeepAlive = true;
request.Method = "POST";
request.ContentType = "application/json";
request.Headers.Add("authorization", "Basic "+appId);
byte[] byteArray = Encoding.UTF8.GetBytes("{"
+ "\"app_id\": \"app_id\","
+ "\"contents\": {\"en\": \""+ message +"\"},"
+ "\"included_segments\": …Run Code Online (Sandbox Code Playgroud) 我正在向Xamarin寻求跨平台应用程序开发.我已经安装了VS2015,我从他们的网站上下载了Xamarin工具(vstoolsforxamarin.exe),当我在漫长的等待后安装它们时VS说"安装完成但有错误"并且它没有下载并安装适用于API 19,20的Android SDK, 23,它总是说:"请检查你的互联网连接,然后再试一次",我确信我的互联网连接在这一过程中不会受到干扰.我已经尝试了3次,尝试通过卸载VS2015,再次安装但得到了同样的错误.引起这个问题的原因是什么?我已经安装了Android Studio及其SDK管理器.任何帮助将不胜感激,让Xamarin在VS2015中运行.
编辑:
解决方案:我已经在我的系统上安装了Android Studio及其SDK,转到工具>选项> Xamarin,并提供Android SDK的路径解决了我的问题.
我正在开发一个计步器Android应用程序来计算所采取的步数,并使用这些步骤计算所覆盖的距离和燃烧的卡路里.我已经按照教程 在Android中创建一个简单的计步器和步数计数器,并且完全像它一样.它检测传感器检测到运动时的步数.
但它有一些问题:
我已经从Play商店检查了一些其他应用程序,但他们没有做这种事情.
我已搜索但无法找到适合的解决方案或教程.任何帮助或建议.谢谢
我正在为广播流应用程序开发 ExoPlayer 2.6.0。收音机播放很好,但是当我尝试添加 seekTo +/-30 秒时,它总是从 0 开始流式传输。在调试模式下,播放器搜索到 +30 秒,但一旦设置了 setPlayWhenReady() 它就会返回从 0 开始。我一直在寻找这个解决方案很久了,所以决定在这里提问。任何帮助将不胜感激。
以下是我用于 seekto 操作的代码。
ivForward.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
if (exoPlayer != null && Constants.isMediaPlaying) {
exoPlayer.setPlayWhenReady(false);
Constants.isMediaPlaying = false;
long bufferPosition = exoPlayer.getBufferedPosition();
long currentPosition = exoPlayer.getCurrentPosition();
if ((currentPosition + 30000) < bufferPosition + 50) {
exoPlayer.setPlayWhenReady(false);
Constants.isMediaPlaying = false;
exoPlayer.seekTo(exoPlayer.getCurrentWindowIndex(), currentPosition + 30000);
exoPlayer.setPlayWhenReady(true);
Constants.isMediaPlaying = true;
}
}
} catch (Exception e) {
MakeToast.show("Error moving forward");
}
} …Run Code Online (Sandbox Code Playgroud) 我已经在我的C#.Net网站中包含了Quartz.net库,可以根据某些条件自动发送电子邮件.我已经使用RepeatForever()开始了这项工作.我从数据库中获取调度程序的设置.现在,当作业已经启动时,无论如何都要检查数据库中调度程序的设置是否已更改,所以我还应该在我的方法中更新它们,以便调度程序动态运行新设置?到目前为止,我已经这样做了:
public void StartJob()
{
var reminderSettings = GetReminderSettings(); //getting these settings from database
var count = GetUnpaidInvoicesListCount();
var intervalBtwnReminders = 0;
if (reminderSettings?.RemindersGap != null)
{
intervalBtwnReminders = (int)(reminderSettings.RemindersGap);
}
ISchedulerFactory schedFact = new StdSchedulerFactory();
IScheduler sched = schedFact.GetScheduler();
sched.Start();
// create job
IJobDetail job = JobBuilder.Create<EmailJob>()
.WithIdentity("job1", "group1")
.Build();
// create trigger
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.WithSimpleSchedule(x =>
{
x.WithIntervalInMinutes(intervalBtwnReminders ).RepeatForever();
})
.Build();
sched.ScheduleJob(job, trigger);
}
Run Code Online (Sandbox Code Playgroud) android ×3
c# ×2
.net ×1
exoplayer ×1
exoplayer2.x ×1
json ×1
onesignal ×1
pedometer ×1
quartz.net ×1
seektotime ×1
xamarin.ios ×1