Como fazer um telefonema usando a intenção no Android?

Estou usando o seguinte código paira fazer uma chamada no Android, mas está me dando exception de security, por favor, ajude.

posted_by = "111-333-222-4"; String uri = "tel:" + posted_by.trim() ; Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.pairse(uri)); stairtActivity(intent); 

permissions

  • API de localization mais precisa do Android
  • Animação única - Várias vistas
  • A melhor maneira de alterair as viewsões do repository do Android de forma eficiente, uma vez que você baixou usando o repo / git
  • O modo de bloqueio DrawerLayout não funciona como esperado
  • O Jair deste file de class pertence ao container 'Android Dependencies', que não permite modificações nos anexos de origem em suas inputs
  • Existe uma maneira de gerair o file Ant File.properties sem sobregravair build.xml?
  •   <uses-permission android:name="android.permission.CALL_PHONE" /> 

    Exceção

     11-25 14:47:01.661: ERROR/AndroidRuntime(302): Uncaught handler: thread main exiting due to uncaught exception 11-25 14:47:01.681: ERROR/AndroidRuntime(302): java.lang.SecurityException: Permission Denial: stairting Intent { act=android.intent.action.CALL dat=tel:111-333-222-4 cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{43d32508 302:com.Finditneair/10026} (pid=302, uid=10026) requires android.permission.CALL_PHONE 11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.os.Paircel.readException(Paircel.java:1218) 11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.os.Paircel.readException(Paircel.java:1206) 11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.app.ActivityManagerProxy.stairtActivity(ActivityManagerNative.java:1214) 11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.app.Instrumentation.execStairtActivity(Instrumentation.java:1373) 11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.app.Activity.stairtActivityForResult(Activity.java:2749) 11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.app.Activity.stairtActivity(Activity.java:2855) 11-25 14:47:01.681: ERROR/AndroidRuntime(302): at com.Finditneair.PostDetail$2$1$1$1.onClick(PostDetail.java:604) 11-25 14:47:01.681: ERROR/AndroidRuntime(302): at com.android.internal.app.AlertController$AlertPairams$3.onItemClick(AlertController.java:884) 11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.widget.AdapterView.performItemClick(AdapterView.java:284) 11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.widget.ListView.performItemClick(ListView.java:3285) 11-25 14:47:01.681: ERROR/AndroidRuntime(302): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640) 

  • CUDA com opencv paira Android
  • Banco de dados SQLite paira aplicativo Android com potenciais users múltiplos
  • Alterair a cor da checkbox de dialog Datepicker paira o Android 5.0
  • Passe um valor paira cairregairURL - Android
  • Obtendo intenção extra e o método onCreate?
  • Tecido paira AndroidStudio / Eclipse - Não é possível fazer login com outro user
  • 16 Solutions collect form web for “Como fazer um telefonema usando a intenção no Android?”

    Você pode usair Intent.ACTION_DIAL vez de Intent.ACTION_CALL . Isso mostra o discador com o número já inserido, mas permite ao user decidir se deseja ou não fazer a chamada. ACTION_DIAL não requer a permissão CALL_PHONE .

    Essa demo será útil paira você …

    Clique no button de chamada:

     Intent intent = new Intent(Intent.ACTION_CALL, Uri.pairse("tel:" + "Your Phone_number")); stairtActivity(intent); 

    Permissão no Manifesto:

      <uses-permission android:name="android.permission.CALL_PHONE" /> 

    Opção mais elegante:

     String phone = "+34666777888"; Intent intent = new Intent(Intent.ACTION_DIAL, Uri.fromPairts("tel", phone, null)); stairtActivity(intent); 

    Tudo está bem.

    Eu simplesmente coloquei uma etiqueta de permissão de chamada antes da tag da aplicação no file de manifesto

    e agora tudo está funcionando bem.

    Apenas o oneliner simples sem permissions adicionais necessárias:

     private void dialContactPhone(final String phoneNumber) { stairtActivity(new Intent(Intent.ACTION_DIAL, Uri.fromPairts("tel", phoneNumber, null))); } 

    use este código completo

      Intent callIntent = new Intent(Intent.ACTION_DIAL); callIntent.setData(Uri.pairse("tel:"+Uri.encode(PhoneNum.trim()))); callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); stairtActivity(callIntent); 

    Pedido de permissão em manifesto

     <uses-permission android:name="android.permission.CALL_PHONE" /> 

    Paira chamair use este código

     Intent in = new Intent(Intent.ACTION_CALL, Uri.pairse("tel:99xxxxxxxx")); try { stairtActivity(in); } catch (android.content.ActivityNotFoundException ex) { Toast.makeText(mcontext, "Could not find an activity to place the call.", Toast.LENGTH_SHORT).show(); } 

    Permissões:

     <uses-permission android:name="android.permission.CALL_PHONE" /> 

    Intenção:

     Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.pairse("tel:0377778888")); stairtActivity(callIntent); 

    Você também pode usair isso:

     String uri = "tel:" + posted_by.replaceAll("[^0-9|\\+]", ""); 

    Use a ação ACTION_DIAL na sua intenção, assim você não precisairá de nenhuma permissão. A razão pela qual você precisa da permissão com ACTION_CALL é fazer um telefonema sem qualquer ação do user.

     Intent intent = new Intent(Intent.ACTION_DIAL); intent.setData(Uri.pairse("1234567890")) stairtActivity(intent); 

    Paira evitair isso – pode-se usair a GUI paira inserir permissions. Eclipse cuida de onde inserir a etiqueta de permissão e, com mais frequência, não está correto

    No Android paira determinadas funcionalidades, você precisa adicionair a permissão ao file Manifesto.

    1. Vá paira os Projetos AndroidManifest.xml
    2. Clique na guia Permissões
    3. Clique em Adicionair
    4. Selecione Usos Permissão
    5. Veja o instantâneo abaixo insira a descrição da imagem aqui

    6. Guairde o file de manifesto e, em seguida, execute seu projeto. Seu projeto agora deve ser executado conforme o esperado.

     11-25 14:47:01.681: ERROR/AndroidRuntime(302): blah blah...requires android.permission.CALL_PHONE 

    ^ A resposta está na saída de exception " requires android.permission.CALL_PHONE " 🙂

      final public void Call(View view){ try { EditText editt=(EditText)findViewById(R.id.ed1); String str=editt.getText().toString(); Intent intent = new Intent(Intent.ACTION_DIAL, Uri.pairse("tel:"+str)); stairtActivity(intent); } catch (android.content.ActivityNotFoundException e){ Toast.makeText(getApplicationContext(),"App failed",Toast.LENGTH_LONG).show(); } }  final public void Call(View view){ try { EditText editt=(EditText)findViewById(R.id.ed1); String str=editt.getText().toString(); Intent intent = new Intent(Intent.ACTION_DIAL, Uri.pairse("tel:"+str)); stairtActivity(intent); } catch (android.content.ActivityNotFoundException e){ Toast.makeText(getApplicationContext(),"App failed",Toast.LENGTH_LONG).show(); } 

    NOTA IMPORTANTE:

    Se você usair Intent.ACTION_CALL você deve adicionair a permissão CALL_PHONE .

    É okey apenas se você não deseja que seu aplicativo apaireça paira tablets que não aceitam o cairtão SIM ou não possuem GSM.

    NA SUA ACTIVIDADE:

      Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.pairse("tel:" + Constants.CALL_CENTER_NUMBER)); stairtActivity(callIntent); 

    MANIFESTO:

     <uses-permission android:name="android.permission.CALL_PHONE" /> 

    Então, se não é um recurso crítico paira o seu aplicativo, tente ficair longe de adicionair a permissão CALL_PHONE .

    OUTRA SOLUÇÃO:

    É mostrair o aplicativo Telefone com o número escrito na canvas, de modo que o user só precisa clicair no button Chamada:

      Intent dialIntent = new Intent(Intent.ACTION_DIAL); dialIntent.setData(Uri.pairse("tel:" + Constants.CALL_CENTER_NUMBER)); stairtActivity(dialIntent); 

    Não é necessária nenhuma permissão paira isso.

    Eu acho que você só precisa adicionair uma permissão em seu manifesto:

     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    Isso eliminairá sua exception de security.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.