MMI-Code mit Button ausführen! (gewünschter Effekt tritt nicht ein!)

R

raining_man

Neues Mitglied
0
Hi Leute,
ich bin noch relativ neu in der Android Entwicklung...habe auch schon eine App geschrieben. Momentan bin ich an einem neuen Projekt dran...nur da gibst ein Problem!
Ich habe eine App für das Galaxy S3 (also mein Handy:)) entworfen, die durch das Drücken eines Buttons im Hntergrund einen MMI-Code ausführen soll!
Ich habe schon das, wie ich finde richtige Skript aufgesetzt aber das Ergebnis ist nicht das was ich möchte!
Hier erstmal der Code der Activity:
Code:
package de.systemdroid.galaxysthree;

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

public class SystemDroidActivity extends Activity {

    final Context context = this;
    private Button button;

    public void onCreate(Bundle savedInstanceState) {

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

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

        // 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() {

            public void onClick(View arg0) {

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

            }

        });

    }

    private class PhoneCallListener extends PhoneStateListener {

        private boolean isPhoneCalling = false;

        String LOG_TAG = "LOGGING 123";

        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;
                }

            }
        }
    }

}

Soweit so gut..aber wenn ich die App im Emulator starte und den Button1 drücke wählt die App die Nummer "unbekannt" und führt KEINEN MMI-Code aus :(
Hier ist auch nochmal mein Manifest, falls ihr das wegen der PERMISSION braucht!
Code:
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

Kann mir einer bitte sagen warum sich dieser MMI-Code (*#1234#) nicht ausführt??? Ein Beispiel wie es funktionieren würde wäre super :thumbsup:

Liebe Grüße
raining_man
 

Ähnliche Themen

MES
Antworten
10
Aufrufe
808
MES
MES
A
  • AnimaAngelo85
Antworten
1
Aufrufe
331
swa00
swa00
C
Antworten
8
Aufrufe
1.122
swa00
swa00
Zurück
Oben Unten