Ir para conteúdo
Visualizar no app

Uma forma melhor de navegar. Saiba mais.

MM Fórum

Um app em tela cheia na sua Tela de Início com notificações push, avisos e mais.

Para instalar este app no iOS/iPadOS
  1. Toque no ícone de Compartilhamento no Safari
  2. Role o menu e toque em Adicionar à Tela de Início.
  3. Toque em Adicionar no canto superior direito.
Para instalar este app no Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Evento ao atender ligação

Featured Replies

Postado

Boa tarde a todos.

Existe uma forma de criar uma aplicação para executar um evento no momento em que um ligação é atendida ou efetuada?

Ou no momento que atendemos um ligação, chamamos executamos um aplicativo?

Grato

  • Respostas 30
  • Visualizações 3.1k
  • Criado
  • Última resposta

Top Postadores Neste Tópico

Postado

sim, basta usar o CoreTelephony framework ....


callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler = ^(CTCall* aCallIncomming) {
// anounce that we've had a state change in our call center
NSDictionary *dict = [NSDictionary dictionaryWithObject:aCallIncomming.callState forKey:@"callState"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"CTCallStateDidChange" object:self userInfo:dict];
};

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ctCallStateDidChange:) name:@"CTCallStateDidChange" object:nil];


- (void)ctCallStateDidChange:(NSNotification *)notification
{
NSString *callInfo = [[notification userInfo] objectForKey:@"callState"];
if ([callInfo isEqualToString:CTCallStateIncoming]) {
NSLog(@"do something ...");
}
}
[/CODE]

Editado por Artur Felipe

Postado
  • Autor

Olá Artur.

Obrigado pela resposta.

Em qual das situações esse script se encaixa:

Recebo ou faço uma ligação, script acima é executado

Executo um app, ao receber ou fazer uma ligação o script é executado

Postado

primeiro tem que executar o app né, senão não vai ter ninguém escutando no notification center. :)

Postado
  • Autor

Entendi, foi o que pensei...

Mas para ser mais especifico, eu quero criar um app que sempre esteja rodando, para garantir que pegarei as ligações.

Se trata de um trabalho especifico para um cliente, não será uma app publica ou que estará a venda na store.

Abraços.

Postado

então lhe adianto que não é possivel fazer esse tipo de app oficialmente, precisaria de jailbreak e alteração no sistema provavelmente fazendo algumas injeções de código em modo runtime.

até porque enquanto o usuário está usando, quando o sistema necessitar de memória o primeiro app que dança é o seu que estiver em background, e dependendo do que queira fazer com as ligações pode ser impossível com o sdk atual ... coisas como gravar as ligações por exemplo, pois o app das ligações bloqueia os recursos de microfone e auto-falantes.

talvez, necessitaria de uma pesquisa mais a fundo pra verificar, se desenvolver um hardware que acople ao telefone pela porta dock possa ser possível, dependendo dos recursos que tenhas disponível.

Editado por Artur Felipe

Postado
  • Autor

Entendi.

Existe então uma forma de consultar a lista de ligações efetuadas e recebidas?

Postado

infelizmente não oficialmente, não existe api no sdk que lhe forneça essa informação.

Para acessar essa info vc teria que conectar direto numa database que guarda essa informação e fazer um select nela, porem essa database logicamente fica fora do sandbox da aplicação ou seja vc não pode acessa-la diretamente pois o usuário a nível de aplicação não conseguiria acessar arquivos fora da própria sandbox ... precisaria de jailbreak no aparelho para ai sim a aplicação ser executada com privilégio root e ter acesso a essa database.

sua situação está difícil amigo. :)

Postado
  • Autor

Pois é Artur, está mesmo...

Mesmo depois dos suas respostas, recebi um famoso, TVN, "Te Vira Negão", :)

Encontrei um projeto brasileiro open source que faz quase a mesma coisa de que preciso, irei dar uma olhada nos fontes e ver como ele faz.

Segue o link caso queira conferir também.

http://blogdoiphone.com/2011/01/lancado-o-primeiro-projeto-brasileiro-de-aplicativo-para-iphone-com-codigo-open-source/

Muito obrigado Artur.

Postado

cara vcs estao em velocidade de dobra! em outras palavras tenho que estudar muito para ficar perto do nivel de voces, putz estou cheio de duvida em objective c....

vcs podem me ajudar.

obrigado

Postado

dei uma olhada no aplicativo e ele simplesmente consome a pagina web para cada operadora, loga e pega as infos disponíveis lá ...

não sei especificamente o que vc precisa na sua aplicação mas se a operadora fornece em um portal o que vc precisa então essa aplicação no github ajuda muito, senão nada muito o que possa fazer.

disponha e qualquer coisa só dizer. :)

Editado por Artur Felipe

Postado

cara vcs estao em velocidade de dobra! em outras palavras tenho que estudar muito para ficar perto do nivel de voces, putz estou cheio de duvida em objective c....

vcs podem me ajudar.

obrigado

poste sua dúvida no forum, sempre tem alguém que ajuda ou dá um jeito de ajudar, tem até uns grupos e blogs sobre programação para iphone com vários tutos.

eu pelo menos só não ajudo quando percebo que já é spam e estou praticamente montando toda a aplicação pro cara, fora isso fico feliz em ajudar no que for de meu conhecimento assim como tantos outros no forum.

Editado por Artur Felipe

Postado
  • Autor

dei uma olhada no aplicativo e ele simplesmente consome a pagina web para cada operadora, loga e pega as infos disponíveis lá ...

não sei especificamente o que vc precisa na sua aplicação mas se a operadora fornece em um portal o que vc precisa então essa aplicação no github ajuda muito, senão nada muito o que possa fazer.

disponha e qualquer coisa só dizer. :)

O que preciso na verdade é um registro de minutos gastos em cada ligação.

Irei ver se consigo algo por essa app.

Postado

vlz meu amigo Artur, estou tentando fazer uma radio on-line para o iphone da empresa que trabalho atualmente, mais nao estou conseguindo finalizar ele,irei postar aqui no fórum....

um grande abraço

Postado

O que preciso na verdade é um registro de minutos gastos em cada ligação.

Irei ver se consigo algo por essa app.

andei pesquisando umas coisas e aparentemente pode ser possivel vc manter uma aplicação em background oficialmente fazendo algumas configurações ...

de acordo com a documentação official: http://developer.app...0007072-CH5-SW6

vc pode configurar sua aplicação como se fosse uma Aplicação Voip para rolar em background, assim o sistema deixaria sua aplicação ficar rodando ... detalhes que constam na documentação:

  • Add the UIBackgroundModes key to your application’s Info.plist file. Set the value of this key to an array that includes the voip string.
  • Configure one of the application’s sockets for VoIP usage.
  • Before moving to the background, call the setKeepAliveTimeout:handler: method to install a handler to be executed periodically. Your application can use this handler to maintain its service connection.
  • Configure your audio session to handle transitions to and from active use.

Including the voip value in the UIBackgroundModes key lets the system know that it should allow the application to run in the background as needed to manage its network sockets. An application with this key is also relaunched in the background immediately after system boot to ensure that the VoIP services are always available.

Most VoIP applications also need to be configured as background audio applications to deliver audio while in the background. Therefore, you should include both the audio and voip values to the UIBackgroundModes key. If you do not do this, your application cannot play audio while it is in the background. For more information about the UIBackgroundModes key, see Information Property List Key Reference.

aparentemente mesmo dando reboot no aparelho, com essas chaves sua aplicação seria iniciada pelo sistema depois de um reboot.

configurando assim e usando o handle do primeiro post que passei para saber quando uma ligação ocorre, talvez vc possa medir e salvar numa base de dados o tempo das ligações que precisa ...

Não fiz nenhum teste em cima disso mas acredito que dê um bom direcionamento de por onde tentar. :)

Editado por Artur Felipe

Postado
  • Autor

Pô Artur, você é o cara... :D

Irei fazer alguns teste durante a semana e lhe dou feedback de meus testes.

Muito obrigado pelo help.

Abraços.

Postado
então lhe adianto que não é possivel fazer esse tipo de app oficialmente, precisaria de jailbreak e alteração no sistema provavelmente fazendo algumas injeções de código em modo runtime.

até porque enquanto o usuário está usando, quando o sistema necessitar de memória o primeiro app que dança é o seu que estiver em background, e dependendo do que queira fazer com as ligações pode ser impossível com o sdk atual ... coisas como gravar as ligações por exemplo, pois o app das ligações bloqueia os recursos de microfone e auto-falantes.

talvez, necessitaria de uma pesquisa mais a fundo pra verificar, se desenvolver um hardware que acople ao telefone pela porta dock possa ser possível, dependendo dos recursos que tenhas disponível.

Sabe como posso começar a ter uma idéia de como programar injetando código no runtime para fazaer programas não oficiais. Tais como o que iniciou o tópico quer????

Vales e abraço..

Postado
  • Autor

Olá Nitro.

A intenção não é criar nada não oficial, e nem buscar idéias para programar dessa forma.

Minha dúvida consiste em resolver um problema de forma oficial.

;)

Postado

Ok Ghean, minha intenção também não é fazer nada errado e sim aprender a programar para o cydia também. Pois tenho idéias que com certeza a Apple não vai aprovar, mas isso não significa que são erradas. Por isso já estou fazendo algo com Xcode oficial, mas quero entrar no mundo cydia também..

Se puder me dar uma luz nesse sentido vou agradecer muito

Abraço..

Postado
  • Autor

Bom dia Artur, tudo bem?

O CoreTelephony framework só esta disponivel partir da versão 4.0 do iPhone SDK, correto?

Acredito não há como utiliza-lo em SDKs anteriores assim como também a app terá alguns problemas em aparelhos anteriores tbm, não é mesmo?

Estou utilizando o Leopard e nesse momento não tenho como fazer o upgrade para o Snow Leopard ou para o Lion.

Participe do debate

Você pode postar agora e se registrar depois. Se você tem uma conta, entre agora para postar com ela.

Visitante
Responder este tópico…

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conta

Navegação

Buscar

Buscar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.