-1

Я использовал пример pushcollector из кода BlackBerry от github для интеграции уведомления push, я получаю уведомление на своем устройстве, но со звуком и значком звонка по умолчанию. Мне нужно изменить значок звонка по умолчанию и звук с теми, которые я предоставляю. Мое устройство Dev Alpha B и версия 10.2.1.3061Настроить звук звукового оповещения и значок для каскадов ежевики 10

Это мой код обработчика pushnotfication, но он не устанавливает звук или значок. Любая помощь приветствуется

void ApplicationUI::pushNotificationHandler(bb::network::PushPayload &pushPayload) 
{ 
    qDebug() << "Received push pushNotificationHandler"; 

    PushHistoryItem pushHistoryItem(pushPayload.id()); 

    if (m_pushNotificationService.checkForDuplicatePush(pushHistoryItem)) { 
     qWarning() << QString("Duplicate push was found with ID: %0.").arg(pushPayload.id()); 

     return; 
    } 

    Push push(pushPayload); 
    push.setSeqNum(m_pushNotificationService.savePush(push)); 

    Notification *notification = new Notification(NOTIFICATION_PREFIX + QString::number(push.seqNum()),this); 
    notification->setTitle("Yo"); 


    PlatformInfo pkinfo; 
      QString osVersion=pkinfo.osVersion(); 
      qDebug() <<"OS full:"<<osVersion; 
      osVersion.resize(4); 
      qDebug() <<"OS:"<<osVersion; 
      float versionValue=10.2; 

      if(osVersion.toFloat()>=versionValue) 
      { 
       qDebug() <<"Notification set:"; 
       notification->setIconUrl(QUrl("file://" + QDir::currentPath() + "/app/native/assets/Images/customIcon.png")); 
       notification->setSoundUrl(QUrl("file://" + QDir::currentPath() + "/app/native/assets/Sounds/customSound.mp3")); 
      } 
      else 
      { 
       qDebug() <<"Notification unset OS version is:"<<osVersion.toFloat(); 
      } 

    notification->setBody(QString("New %0 push received").arg(push.fileExtension())); 

    InvokeRequest invokeRequest; 
    invokeRequest.setTarget(INVOKE_TARGET_KEY_OPEN); 
    invokeRequest.setAction(BB_OPEN_INVOCATION_ACTION); 
    invokeRequest.setMimeType("text/plain"); 
    invokeRequest.setData(QByteArray::number(push.seqNum())); 
    notification->setInvokeRequest(invokeRequest); 
    notification->notify(); 

    m_model->insert(push.toMap()); 
    if (pushPayload.isAckRequired()) { 
     m_pushNotificationService.acceptPush(pushPayload.id()); 
    } 

} 

ответ

2

Вы должны указать их в качестве общественных активов в баре-descriptor.xml, а затем использовать публичные адреса вместо частного.

Лучший способ - создать отдельную папку для государственных активов

бар-descriptor.xml

<asset path="assets">assets</asset> 
<asset path="public" public="true">.</asset> 

C++

notification->setIconUrl(QUrl("file://" + QDir::currentPath() + "/app/public/Images/customIcon.png")); 
notification->setSoundUrl(QUrl("file://" + QDir::currentPath() + "/app/public/Sounds/customSound.mp3"));