Ir para conteúdo
  • Cadastre-se

Evento ao atender ligação


Posts Recomendados

  • Respostas 30
  • Criado
  • Última resposta

Top Postadores Neste Tópico

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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. :)

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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..

Link para o comentário
Compartilhar em outros sites

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..

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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…

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Limpar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Quem Está Navegando   0 membros estão online

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



  • Estatísticas do Fórum

    • Total de Tópicos
      56.5k
    • Total de Posts
      466.1k
×
×
  • Criar Novo...