2017-01-27 3 views
0

Hallo Ich versuche, Knopf zu machen, die mir erlauben, automatischen AnrufAuto Anruf durch Drücken der Taste

Dies ist, wie ich Anruf mache eigentlich

String number = "1234"; 
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel",number,null)); 
startActivity(intent); 

zu machen, aber ich muß bestätigen Anruf zu tätigen, indem Sie Telefonsymbol im Dialer. Ist es möglich, es automatisch zu machen?

+0

Sie meine Antwort Mann unaccepted – W4R10CK

Antwort

0

Verwenden Aktion Intent.ACTION_CALL, diese So ändern:

Intent intent = new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel",number,null)); 

mit diesem:

Intent intent = new Intent(Intent.ACTION_CALL, Uri.fromParts("tel",number,null)); 

hinzufügen Erlaubnis:

if (ContextCompat.checkSelfPermission(this, 
      Manifest.permission.CALL_PHONE) 
    != PackageManager.PERMISSION_GRANTED) { 

// Should we show an explanation? 
if (ActivityCompat.shouldShowRequestPermissionRationale(this, 
     Manifest.permission.CALL_PHONE)) { 

    // Show an explanation to the user *asynchronously* -- don't block 
    // this thread waiting for the user's response! After the user 
    // sees the explanation, try again to request the permission. 

} else { 

    // No explanation needed, we can request the permission. 

    ActivityCompat.requestPermissions(this, 
      new String[]{Manifest.permission.CALL_PHONE}, 
      1); 

    } 
} 

Griff Erlaubnis:

@Override 
public void onRequestPermissionsResult(int requestCode, 
             @NonNull String permissions[], 
             @NonNull int[] grantResults) { 
    switch (requestCode) { 
     case 1: { 
      if ((grantResults.length > 0) && (grantResults[0] + 
        grantResults[1]) == PackageManager.PERMISSION_GRANTED) { 
       //Call whatever you want 

      } 
     } 
    } 
} 
+0

Ich bin eine Fehlermeldung über Scheck permisisons – RamZes

+0

Nutzungserlaubnis erhalten '' – W4R10CK

+0

ich habe schon aber nichts – RamZes

0

Versuchen Sie diesen Code, es wird Ihnen helfen.

String number = "1234"; 

Get Nummer in Uri

Uri numberUri = Uri.parse("tel:"+number); 

-Code für Dial

Intent callIntent = new Intent(Intent.ACTION_DIAL, numberUri); 
startActivity(callIntent); 

-Code für Call

Intent callIntent = new Intent(Intent.ACTION_CALL, numberUri); 
startActivity(callIntent); 

EDIT

In Marshmallow müssen Sie Laufzeit Berechtigung für den Aufruf zu nehmen. Sie können keinen Anruf tätigen, wenn die Berechtigung verweigert wird.

Jetzt gibt es eine andere Lösung, die ich Ihnen geben möchte.

Sie können automatisch in 6.0 oder höher aufrufen, ohne nach Laufzeitberechtigungen zu fragen. aber dafür müssen Sie targetSdkVersion auf 19 oder unter 22 setzen. Also, was passieren wird, dass die All-Berechtigung automatisch aktiviert wird, weil die Android OS es als alte Anwendung nehmen und ohne Laufzeitberechtigungen zulassen wird.

Aber es gibt noch ein Problem. Es funktioniert nicht, nachdem Sie die Berechtigung manuell deaktiviert haben, indem Sie auf Einstellung gehen.

+0

Anruf erfordert Berechtigungen, die abgelehnt werden können – RamZes

+0

in 6.0 müssen Sie die Berechtigung dynamisch, ohne Erlaubnis nehmen, können Sie Anruf nicht automatisch machen. –

+0

funktioniert es danke – RamZes

Verwandte Themen