2017-02-01 3 views
0

bitte helfen, wenn ich die App starte, starten die App einen Fatal Error im Lernen Ich erstelle nur ein instat mit einem Anruf, aber nicht ausgeführt, (Entschuldigung für mein Englisch) ................................................ .......................android.content.ActivityNotFoundException: Keine Aktivität gefunden Intent behandeln

mein Manifest:

<?xml version="1.0" encoding="utf-8"?> 
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.android.octa.appprueba3"> 

     <uses-permission android:name="android.permission.CALL_PHONE" /> 
     <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
      <category android:name="android.intent.category.APP_CONTACTS" /> 
     </intent-filter> 
     </activity> 
     <activity android:name=".SecondActivity"></activity> 
     </application> 

     </manifest> 

mein Code:

public class SecondActivity extends AppCompatActivity { 

    private EditText editPhoneText; 
    private ImageButton imageCallButton; 
    private final int PHONE_CALL_CODE = 100; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_second); 

    editPhoneText = (EditText) findViewById(R.id.editTextPhone); 
    imageCallButton = (ImageButton) findViewById(R.id.imageCallButton1); 

    imageCallButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      implicito(); 
     } 
    }); 
} 

    public void implicito(){ 

     Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("Tel: 9999999")); 
     startActivity(intent); 

} 
} 

Antwort

2

Möglicherweise möchten Sie überprüfen, ob Ihr Gerät Ihre Absicht, indem Sie diese umgehen kann:

PackageManager packageManager = getPackageManager(); 
if (intent.resolveActivity(packageManager) != null) { 
    startActivity(intent); 
} else { 
    Log.d(TAG, "Cannot handle this intent"); 
} 

Was mehr ist, wenn Sie einen Anruf wie so platzieren, gibt es keine Notwendigkeit, die Erlaubnis in Ihrem Manifest zu erklären :

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

Weil Sie nicht direkt jemand in Ihrer App aufrufen werden. Sie übertragen die "Pflicht" tatsächlich an andere Apps, mit denen Sie telefonieren können. Dies benötigt keine Erlaubnis.

Um direkt in Ihrer App anzurufen, sollte die Absicht Intent.ACTION_CALL lauten, die die von Ihnen angegebene Berechtigung erfordert.

Hoffe, das wird helfen.

+0

lol, nicht laufen, aber ich sehe ein Video in youtube und ich habe den Fehler in meinem echten Code behoben whatch: – Dskato

1

Es gibt keine Aktivität auf Ihrem Gerät, die ACTION_DIAL für ein Tel: Schema verarbeitet. Versuchen:

Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:9999999")); 

Fall und Leerzeichen wichtig sind, wenn eine Uri Montage.

Beachten Sie auch, dass auch meine überarbeitete Intent nicht auf allen Geräten funktioniert, z. B. auf einem Android-Tablet, das einen Dialer fehlt.

Verwandte Themen