在文档中声明[client relayLocalNotification:]应该用检查保护[client isStarted],但没有提到[client relayRemotePushNotificationPayload:](我通过自己的套接字提供远程推送通知有效负载,而不是Apple推送通知).
我的问题是:
[client relayRemotePushNotificationPayload:]调用start还是我最好检查并缓冲要在clientDidStart委托消息中使用的有效负载?[_client start]多次通话是否安全?[_client stop]当我的应用程序进入后台时我应该打电话吗?(我使用自己的套接字来提供远程推送通知负载)我已正确设置所有内容以便从推送通知中启动呼叫,但是收件人的SINClient不会调用客户端:didReceiveIncomingCall:方法,因此用户无法接听呼叫.
我已经验证了我的有效负载是相同的 - 来自relayRemotePushNotificationPayload:方法的结果表明它已经成功并且没有超时 - 这在每次调用时都是相同的.
当我从clientDidStart获取调用时,委托工作,我只是没有得到didReceiveIncomingCall:.我确保在连接到Sinch之后调用relayRemotePushNotificationPayload:当我在clientDidStart:的回调中调用它时,所以我绝对确定在传递此有效负载之前客户端已连接到Sinch.
还有什么我应该做的才能让这个工作?
我正在使用Sinch和Parse来集成我们的应用程序中的即时消息系统.由于某种原因,我在显示消息传递活动时收到以下错误:消息客户端没有启动".此外,消息似乎没有在Sinch中通过,也没有在应用程序中直观反映.
以下是活动代码(当用户点击"快速聊天"按钮时,它会将他们带到消息传递活动页面.
public class matchOptionActivity extends Activity{
protected TextView mUserRetrieved;
private String currentUserId;
protected TextView mUserActivityNameRetrieved;
protected TextView mUserNameRetrieved;
protected TextView mUserAgeRetrieved;
protected TextView mUserHeadlineRetrieved;
String userGender = ParseUser.getCurrentUser().getString("Gender");
String activityName = ParseUser.getCurrentUser().getString("ActivityName");
Number maxDistance = ParseUser.getCurrentUser().getNumber(
"Maximum_Distance");
String userLookingGender = ParseUser.getCurrentUser().getString(
"Looking_Gender");
Number minimumAge = ParseUser.getCurrentUser().getNumber("Minimum_Age");
Number maximumAge = ParseUser.getCurrentUser().getNumber("Maximum_Age");
Number userage = ParseUser.getCurrentUser().getNumber("Age");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.matchoption);
final Button idrinks = (Button) this.findViewById(R.id.btnQuickChat);
idrinks.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
openConversation();
} …Run Code Online (Sandbox Code Playgroud) I am using Sinch and Parse for my instant messaging system integrated in our application, and I have two concerns.
1) For some reason, I am receiving the following error when the messaging activity is displayed: The message client did not start". Furthermore, the message does not seem to go through in Sinch and not reflected visually in the application.
Below is the activity code (when the user clicks on the "quick chat" button, it takes them to the messaging …
我已经使用Parse + Sinch设置了一个聊天应用程序(我主要使用此官方教程),并且我试图以某种特定方式获取通知以使其正常工作:
打开MessagingActivity时,邮件的接收者 不会收到任何通知。
当按下主页按钮并且应用“最小化”但未关闭(活动尚未销毁)时,接收者 应收到通知。
当前,仅当应用程序完全关闭(从多任务视图移开)并且启动MessageService的Activity已被破坏时,接收方才收到通知。
仅在应用程序完全关闭时才调用onShouldSendPushData()吗?无论如何,只要应用程序在后退堆栈中,我都能实现使其调用的目标吗?
我正在完成这里给出的教程,我坚持下面发布的代码部分:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_users);
}
//display clickable a list of all users
private void setConversationsList() {
currentUserId = ParseUser.getCurrentUser().getObjectId();
names = new ArrayList<String>();
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereNotEqualTo("objectId", currentUserId);
query.findInBackground(new FindCallback<ParseUser>() {
public void done(List<ParseUser> userList, com.parse.ParseException e) {
Run Code Online (Sandbox Code Playgroud)
它失败了 ParseQuery<ParseUser> query = ParseUser.getQuery();
同
错误:(53,14)错误:无法访问任何类文件的bolt.Task not found
我很难跟着这个(知道这些代码块进入哪些文件),因为我在android dev中完全是绿色的.
谁能告诉我出了什么问题?
请帮助我,我在我的应用程序中使用sinch sdk并且它在除了android lollipop之外的所有Android平台上正常运行,当我尝试打开它时强制关闭.这是日志:
12-26 01:33:00.577: A/art(5423): art/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION: attempt to return an instance of com.sinch.android.rtc.internal.natives.jni.NativeServiceProviderImpl from com.sinch.android.rtc.internal.natives.jni.NativeServiceProviderImpl com.sinch.android.rtc.internal.natives.jni.ServiceProviderFactory.createServiceProvider(com.sinch.android.rtc.internal.service.dispatcher.Dispatcher, com.sinch.android.rtc.internal.service.http.HttpService, com.sinch.android.rtc.internal.service.pubnub.PubSubClient, com.sinch.android.rtc.internal.service.uniqueid.UniqueId, com.sinch.android.rtc.internal.service.crypto.CryptoService, com.sinch.android.rtc.internal.service.persistence.PersistenceService)
12-26 01:33:00.577: A/art(5423): art/runtime/check_jni.cc:65] from com.sinch.android.rtc.internal.natives.jni.NativeServiceProviderImpl com.sinch.android.rtc.internal.natives.jni.ServiceProviderFactory.createServiceProvider(com.sinch.android.rtc.internal.service.dispatcher.Dispatcher, com.sinch.android.rtc.internal.service.http.HttpService, com.sinch.android.rtc.internal.service.pubnub.PubSubClient, com.sinch.android.rtc.internal.service.uniqueid.UniqueId, com.sinch.android.rtc.internal.service.crypto.CryptoService, com.sinch.android.rtc.internal.service.persistence.PersistenceService)
12-26 01:33:00.577: A/art(5423): art/runtime/check_jni.cc:65] "main" prio=5 tid=1 Runnable
12-26 01:33:00.577: A/art(5423): art/runtime/check_jni.cc:65] | group="main" sCount=0 dsCount=0 obj=0x86eafef0 self=0xb4e07800
12-26 01:33:00.577: A/art(5423): art/runtime/check_jni.cc:65] | sysTid=5423 nice=-11 cgrp=apps sched=0/0 handle=0xb6f5aec8
12-26 01:33:00.577: A/art(5423): art/runtime/check_jni.cc:65] | state=R schedstat=( 284397663 94742126 1467 ) utm=18 stm=10 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Sinch的短信服务(因为Twilio在荷兰似乎不适合我),所以我开始使用他们的免费帐户.但是按照"Get started"向导并运行提供的CURL命令只会返回一个非特定错误:
{"errorCode":50000,"message":"内部服务器错误."}
我宁愿不提供我正在使用的确切命令,因为它包含密码/密钥,但命令正好遵循他们的规范/示例.例如它有这种形式:
卷曲--user "applicationyour_app_key:your_app_secret" --data '{ "消息": "your_message"}' -H '内容-类型:应用/ JSON' https://messagingapi.sinch.com/v1/sms/the_phone_number
我在Windows 8上使用CygWin来运行curl.
当我在他们的向导中使用简单的测试按钮时,我会收到短信,但当然我想以编程方式访问它,而且cUrl不起作用的事实对我来说是一个不好的指示.
谁能告诉我如何解决这个问题?也许是Sinch人自己,就像他们的FAQ一样,他们建议你来到Stackoverflow:>.
在Android上使用Sinch SDK进行通话时,会引发以下错误:
09-14 17:06:38.223 28454-28484/com.callcasual.callcasual E/sinch-android-rtc? ERROR ; (17: 6:38:237 | 1) 28493; (voe_audio_processing_impl.cc:857): GetEcMetricsStatus: not supported
Run Code Online (Sandbox Code Playgroud)
当搜索该错误时,它似乎是WebRTC的一个问题,但是我找不到解决问题的方法.
在Android的Sinch文档中有:
注意:消息在被删除之前存储在后端30天.如果收件人尚未启动应用程序并在此时间范围内下载了邮件历史记录,则邮件将丢失,并且不会收到任何通知.
如何存储消息由Sinch处理或如何下载消息历史记录?
如何使用javascript(plz no nodejs)生成sinch的身份验证票据我正在使用解析进行用户身份验证然后我想将该会话传递给sinch
将这些加密库添加到您的html文件中
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/core-min.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/enc-utf16-min.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/enc-base64-min.js"></script>Run Code Online (Sandbox Code Playgroud)
var userTicket = {
'identity': {'type': 'username', 'endpoint': user._serverData.username},
'expiresIn': 3600,
'applicationKey': sinchClient.applicationKey,
'created': new Date().toISOString()
}
var userTicketJson = JSON.stringify(userTicket).trim();
var userTicketBase64 = btoa(userTicketJson);
// TicketSignature = Base64 ( HMAC-SHA256 ( ApplicationSecret, UTF8 ( UserTicketJson ) ) )
var digest = CryptoJS.HmacSHA256(appSecret,userTicketJson);
var signature = CryptoJS.enc.Base64.stringify(digest);
// UserTicket = TicketData + ":" + TicketSignature
var signedUserTicket = userTicketBase64.replace('=','') + ':' + signature.replace('=','');
sinchClient.start({'userTicket':signedUserTicket})
.then(function(data) {
console.log(data)
})
.fail(function(error) { …Run Code Online (Sandbox Code Playgroud) 美好的一天。我正在使用 sinch 进行音频通话。我不知道该怎么做,并且没有明确的 sinch 文档(这非常令人沮丧),这让我知道如何让 sinch 客户端在后台运行以进行监听应用程序被杀时后台来电。同时我认为我强迫sinch客户端不会被终止,但每次应用程序打开时,客户端无论如何都会启动。所以如果有人遇到这样的事情,你能帮我吗并告诉我如何使用 Sinch 在后台监听来电?发布我已经启动并运行的代码。
由我的所有活动继承的基础活动。
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
import ink.service.SinchService;
/**
* Created by USER on 2016-07-24.
*/
public abstract class BaseActivity extends AppCompatActivity implements ServiceConnection {
private SinchService.SinchServiceInterface mSinchServiceInterface;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getApplicationContext().bindService(new Intent(this, SinchService.class), this,
BIND_AUTO_CREATE);
}
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
if (SinchService.class.getName().equals(componentName.getClassName())) {
mSinchServiceInterface = (SinchService.SinchServiceInterface) iBinder;
onServiceConnected();
}
}
@Override
public void …Run Code Online (Sandbox Code Playgroud)