Intent.ACTION_CALL

  • 2 Antworten
  • Letztes Antwortdatum
smalldevice

smalldevice

Neues Mitglied
0
Hallo Gemeinde,

ich habe ein Problem mit Intent.ACTION_CALL
wenn ich folgenden Code ausführe (von dem ich erwarte, dass er die entsprechenden Telefonnummer wählt)

// Anruf tätigen
private void call(String number)
{
//** FUNKTIONIERT NICHT
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+number));
startActivity(callIntent);

// WORKAROUNT ÜBER .ACTION_DIAL und .FLAG_ACTIVITY_NEW_TASK
//Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + number));
//intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//startActivity(intent);

}

Ich bekomme im log die Fehlermeldung: "requires android.permission CALL_PHONE"

Bei stackoverflow habe ich gefunden, dass hier die entsprechende permission in der Manifestdatei einzutragen ist. Habe ich gemacht (s.u.) funktioniert aber immer noch nicht!

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.carpelibrum.sqlite"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="8"

android:name="android.permission.CALL_PHONE"/>

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".SQLiteDemo"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>
</manifest>


Für etwas Hilfe wäre ich sehr dankbar!

sd

P.S.
Der Workaround funktioniert. Ich will aber nicht den Umweg gehen, sondern direkt aus meiner app die Nummer wählen.
 
Hallo.

Ich denke, dass da ein Fehler in der Manifestdatei ist, oder du hast es hier falsch eingefügt.

<uses-sdk
android:minSdkVersion="8"

android:name="android.permission.CALL_PHONE"/>
Sollte so aussehen:
Code:
<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" [COLOR=Red][B]/>[/B][/COLOR]
    [COLOR=Red][B]<[/B][/COLOR]uses-permission android:name="android.permission.CALL_PHONE"/>
Dann kannst du im Code folgendes aufrufen:
Code:
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            
callIntent.setData(Uri.parse("tel:"+ callNr.toString()));
     try {
            context.startActivity(callIntent);
           } catch (NullPointerException e) {
                ...
           }
lg, Michael
 
Zuletzt bearbeitet:
Hallo,

vielen Dank für Deine Hilfe.
Ich habe die Manifestdatei noch mal gecheckt. Du hattest völlig Recht!
Ich war den Tag wohl etwas neben der Spur und manchmal sieht man sich eine Codezeile 20 mal an und sieht den Wald vor lauter Bäumen nicht.
Jetzt funktioniert es einwandfrei.
Noch mal: VIELEN DANK!

lg sd
 
Zurück
Oben Unten