Anruf Funktion

  • Hallo liebe Community,
    ich habe folgendes problem ich wollte einen Button erstellen der wenn man darauf klickt,
    eine bestimmte Nummer anruft hab ich auch soweit alles hinbekommen aber er funktioniert nicht und ich weiß nicht woran es liegen könnte.
    Der Button:
    [fieldset] <Button
    android:id="@+id/buttonCall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/quickContactBadge2"
    android:layout_marginTop="30dp"
    android:layout_toLeftOf="@+id/quickContactBadge1"
    android:text="@string/call" />[/fieldset]



    Die MainActivity.java
    [fieldset]package com.example.fvs;


    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.content.Context;
    import android.content.Intent;
    import android.net.Uri;
    import android.telephony.PhoneStateListener;
    import android.telephony.TelephonyManager;
    import android.util.Log;
    import android.view.View.OnClickListener;
    import android.widget.Button;


    public class MainActivity extends Activity {


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


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
    }

    public void TelefonKlick (View view) {


    setContentView(R.layout.telefon);


    }

    public class telefon extends Activity {


    final Context context = this;
    private Button button;


    public void onCreate(Bundle savedInstanceState) {


    super.onCreate(savedInstanceState);
    setContentView(R.layout.telefon);


    button = (Button) findViewById(R.id.buttonCall);


    // add PhoneStateListener
    PhoneCallListener phoneListener = new PhoneCallListener();
    TelephonyManager telephonyManager = (TelephonyManager) this
    .getSystemService(Context.TELEPHONY_SERVICE);
    telephonyManager.listen(phoneListener,
    PhoneStateListener.LISTEN_CALL_STATE);


    // add button listener
    button.setOnClickListener(new OnClickListener() {


    @Override
    public void onClick(View arg0) {


    Intent callIntent = new Intent(Intent.ACTION_CALL);
    callIntent.setData(Uri.parse("tel:0377778888"));
    startActivity(callIntent);


    }


    });


    }


    private class PhoneCallListener extends PhoneStateListener {


    private boolean isPhoneCalling = false;


    String LOG_TAG = "LOGGING 123";


    @Override
    public void onCallStateChanged(int state, String incomingNumber) {


    if (TelephonyManager.CALL_STATE_RINGING == state) {
    // phone ringing
    Log.i(LOG_TAG, "RINGING, number: " + incomingNumber);
    }


    if (TelephonyManager.CALL_STATE_OFFHOOK == state) {
    // active
    Log.i(LOG_TAG, "OFFHOOK");


    isPhoneCalling = true;
    }


    if (TelephonyManager.CALL_STATE_IDLE == state) {
    // run when class initial and phone call ended, need detect flag
    // from CALL_STATE_OFFHOOK
    Log.i(LOG_TAG, "IDLE");


    if (isPhoneCalling) {


    Log.i(LOG_TAG, "restart app");


    // restart app
    Intent i = getBaseContext().getPackageManager()
    .getLaunchIntentForPackage(
    getBaseContext().getPackageName());
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);


    isPhoneCalling = false;
    }


    }
    }
    }
    }
    }
    [/fieldset]


    Die Manifest
    [fieldset] <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />[/fieldset]


    Danke im voraus :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!