;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Tá com medo? App da Uber terá função de gravar toda conversa no carro

Motoristas e ageiros poderão gravar tudo o que é dito dentro do carro pelo app da Uber - iStock/Getty
Motoristas e ageiros poderão gravar tudo o que é dito dentro do carro pelo app da Uber Imagem: iStock/Getty

Rodrigo Trindade

De Tilt, em São Paulo

06/11/2019 11h53

O aplicativo da Uber terá em breve um recurso para gravar toda a conversa que rola entre ageiros e motoristas dentro do carro. O novo recurso, anunciado nesta quarta (6) em evento em São Paulo, vem acompanhado de outras novidades relacionadas à segurança no serviço.

O maior destaque é a possibilidade de gravar o áudio ambiente da corrida, uma função introduzida para quem se sentir desconfortável no caminho — seja o motorista ou o ageiro.

A opção começará a ser testada em dezembro no Brasil e poderá ser acionada a partir do ícone de segurança dentro do aplicativo (o escudo azul que fica no canto inferior direito). Tanto motorista quanto ageiro poderão iniciar a gravação de áudio, mas nenhum dos dois poderá ouvir o conteúdo, que é criptografado.

A empresa afirma que a ferramenta foi construída com privacidade em mente. Se o material gravado servir como denúncia, usuário ou motorista poderão encaminhar o arquivo ao final da corrida para a central de segurança da Uber.

"O áudio não é ível no dispositivo, seja para o ageiro ou motorista, de forma alguma. É completamente criptografado. Quando o arquivo é enviado para a Uber, só indivíduos autorizados dentro da empresa terão a chave da criptografia, para que eles possam ar o arquivo de áudio e ouvi-lo", explicou Sachin Kansal, diretor global de produtos de segurança da empresa.

O áudio ficará armazenado no aplicativo, mas não ocupa espaço significativo na memória do celular, segundo a empresa.

Usuários já podiam gravar conversas, claro, mas utilizando o próprio celular - agora, isso será atrelado à Uber. Recentemente, um motorista foi excluído da plataforma por ter uma conversa sexual com um menor de idade, que gravou o papo em seu smartphone. Com o novo recurso, a empresa busca, de acordo com Kansal, ter "alguma ideia e uma fonte verdadeira do que aconteceu realmente dentro do carro".

Checagem de rota e mais

Outros recursos previamente anunciados também estão a caminho do Brasil nos próximos meses. Em um mês, a empresa também prometeu introduzir a Checagem de Rota, recentemente introduzida nos Estados Unidos como "RideCheck". Esta função permite que o aplicativo faça uma checagem proativa do andamento das viagens, observando eventuais anormalidades, como um carro parando fora da rota.

Se uma corrida tomar um caminho inusitado, ou parar no meio do caminho, a empresa entrará em contato com o motorista para checar o que ocorreu para motivar o comportamento fora do esperado. O motorista, então, pode reportar problemas ou confirmar que parou de propósito. O ageiro também recebe o alerta para reportar um acidente, ligar para a polícia ou compartilhar a viagem com algum contato.

Uma série de verificações

Para trazer mais transparência e segurança, novas verificações de identidade serão introduzidas em breve para ageiros e motoristas. No banco de trás, quem quiser chamar um carro e pagar com dinheiro precisará comprovar a identidade. Isso se dará por meio de uma fotografia de um documento, o que no Brasil significará o RG, um aporte ou um cartão de crédito.

Durante a apresentação, Sachin Kansal demonstrou como isso funciona na prática. Fotografando uma identidade chilena falsa — no Chile, a ferramenta já é usada —, Kansal tentou pedir um carro, a ser pago com dinheiro em espécie. O app fez uma checagem do documento, que foi negado. Depois ele testou o aporte, que foi aprovado.

Do lado do motorista, a checagem de identidade por meio de reconhecimento facial receberá um reforço. Há alguns anos, o aplicativo exige que eles tirem, periodicamente, uma selfie para comprovar que eles mesmos estão no volante. Nos próximos meses, a chamada "Liveness Detection", apresentada em setembro durante um evento global da Uber, será introduzida. Em vez de uma simples foto, mais ível de fraude, o motorista precisará mover o rosto de acordo com ordens do aplicativo, para então ter sua identidade comprovada.

A empresa também destacou outras funções que já estão em testes no Brasil, como a possibilidade de motoristas rejeitarem corridas a serem pagas por dinheiro e o sistema RideSense, que trabalha com aprendizado de máquina para identificar e cancelar viagens que são potencialmente perigosas.

"Se alguém tenta pedir uma corrida, nós podemos olhar uma série de sinais dessas viagens: onde essa corrida está ocorrendo, quando ela está sendo pedida, o que sabemos sobre essa viagem em particular, e as circunstâncias dela. Observando cada pedido individualmente, podemos tomar uma decisão de qual é o potencial nível de risco dessa viagem. Se o risco é baixo, deixamos acontecer. Se é alto, pedimos mais informações para o ageiro, como o F dele, ou um cartão de crédito", explicou Kansal.

Outra novidade a caminho é a verificação por PIN, criada para garantir que o usuário está entrando no carro certo — basta informar uma sequência de quatro números ao motorista. Para otimizar o processo, a empresa está desenvolvendo uma forma para que essa troca de informações seja feita automaticamente: celulares compatíveis com tecnologia ultrassom se comunicarão e cuidarão da confirmação.

Brasil e América Latina

O evento desta quarta-feira teve como foco o mercado latino-americano, que conta com países com grandes problemas de segurança pública, como o Brasil. A região conta com 1,4 milhão de motoristas, parcela significativa das mais de 4 milhões de pessoas que trabalham dirigindo Uber no mundo todo.

Ao todo, empresa registra que mais de 5 bilhões de viagens foram feitas na região, que conta com 8% da população mundial, mas 37% dos crimes violentos globais. Para entender o contexto regional e tentar lidar com esses índices elevados, a empresa inaugurou um centro de tecnologia em São Paulo, o primeiro dela na América Latina.

Marcello Azambuja, diretor do núcleo, subiu ao palco e reforçou que a proposta da empresa é expandir a equipe, que começou com 30 funcionários, para 150 nos próximos cinco anos, com um investimento de R$ 250 milhões. A novidade da vez foi anunciar que o time cresceu para mais de 40 especialistas, que agora ganharam a missão trabalhar em ferramentas de segurança para o Uber Eats.

Por enquanto, o centro de tecnologia brasileiro desenvolveu um produto: o U-Check, uma ferramenta de checagem de identidade que utiliza a base da dados da Serasa. Kansal conta, no entanto, que os brasileiros "tiveram uma mão" no desenvolvimento dos produtos apresentados no evento desta quarta.

SIGA TILT NAS REDES SOCIAIS