2016-04-11 19 views
0

Wenn ich laufe die App gibt es einen schweren AusnahmefehlerKeine Aktivität gefunden Intent zu handhaben {act = android.intent.action.CALL

android.content.ActivityNotFoundException: Keine Aktivität gefunden Intent zu handhaben


public class MainActivity extends AppCompatActivity { 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     // get butten 
     Button bt= (Button) findViewById(R.id.bt); 
     // set a monitor 
     bt.setOnClickListener(new MyListener()); 
    } 

    class MyListener implements View.OnClickListener{ 
     public void onClick(View v) { 
      EditText et = (EditText) findViewById(R.id.et); 
      String number = et.getText().toString(); 
      Intent intent = new Intent(); 

      intent.setAction(Intent.ACTION_CALL); 
      intent.setData(Uri.parse("tel"+number)); 
      startActivity(intent); 
     } 
    } 
} 

ScreenShot

+1

Umm, was genau ist deine Frage, die du fragst? Bitte werfen Sie einen Blick auf [ask] und [mcve] und überarbeiten Sie Ihre Frage. –

Antwort

0

Sie müssen den Intent unter Verwendung eines context & Klassennamens angeben.

Da Sie nicht geben Sie Ihre Manifest-Datei der einfachste Weg, um den Fehler zu vermeiden, wird eine Änderung des Codes wie folgt

Intent intent = new Intent(this,MainActivity.class); 

Mehr Details von Android-Dokumentation

android.content.Intent public Intent(android.content.Context packageContext, 
            java.lang.Class<?> cls) 

Erstellen Sie eine Absicht für eine bestimmte Komponente. Alle anderen Felder (Aktion, Daten, Typ, Klasse) sind null, obwohl sie später mit expliziten Aufrufen geändert werden können. Diese bietet eine bequeme Möglichkeit, eine Absicht zu erstellen, die einen hartcodierten Klassennamen ausführen soll, anstatt auf das System eine geeignete Klasse für Sie zu finden; siehe setComponent für mehr Informationen über die Auswirkungen dieser.

Parameter: packageContext - Ein Kontext des Anwendungspakets Implementierung dieser Klasse. cls - Die Komponentenklasse, die sein soll, wird für die Absicht verwendet.

0

Sehr einfach, Ihr Gerät verfügt über keine App, die Anrufe behandelt. Es ist wahrscheinlich ein Tablet. Beim Codieren müssen Sie für solche Fehler codieren, indem Sie try ... catch verwenden.