Wednesday, March 5, 2014

Ask: hang up the phone by the code achieved?


Dialing code to determine whether the system interface display (ie dialing), so, hang it in code, that is equivalent to pressing the red Cancel button. Charles did not get the information for a long time, a friend solved this problem?<-! Main posts under Banner (D4) -><-! Posts under the main text (D5) ->
Reply:
http://stackoverflow .com/questions/15481524/how-to-programatically-answer-end-a-call-in-android-4-1
Reply:
http://android163.diandian.com/post/2011-03-18/2599723
Reply:
1st floor Oh positive solutions
Reply:
android does not provide direct hang up the phone API, use the code directly to hang up the phone, you must first import two aidl package:
android.telephony and com.android.internal.telephony, then the following code can be carried out to hang up:
TelephonyManager telephone = (TelephonyManager) getSystemService (TELEPHONY_SERVICE);
PhoneStateListener listener = new PhoneStateListener () {
@ Override
public void onCallStateChanged (int state, String number) {
if ("Close". equals (check)) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
case TelephonyManager.CALL_STATE_RINGING:
break;
}
} Else {
if ("mute". equals (phone)) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
case TelephonyManager.CALL_STATE_RINGING:
break;
}
} Else if ("Harmony mode". Equals (phone)) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
case TelephonyManager.CALL_STATE_RINGING:
try {
Method method = Class.forName (
"Android.os.ServiceManager"). GetMethod (
"GetService", String.class);
IBinder binder = (IBinder) method.invoke (null,
new Object [] {TELEPHONY_SERVICE});
ITelephony telephony = ITelephony.Stub
. AsInterface (binder);
telephony.endCall ();
} Catch (Exception e) {
e.printStackTrace ();
}
break;
}
} Else {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
case TelephonyManager.CALL_STATE_RINGING:
try {
Method method = Class.forName (
"Android.os.ServiceManager"). GetMethod (
"GetService", String.class);
IBinder binder = (IBinder) method.invoke (null,
new Object [] {TELEPHONY_SERVICE});
ITelephony telephony = ITelephony.Stub
. AsInterface (binder);
telephony.endCall ();
} Catch (Exception e) {
e.printStackTrace ();
}

listNum = (List ) dbHelper
. FindAllNumber (PersonNumber.TABLENAME);
for (int i = 0; i if (listNum.get (i). getNumber (). equals (number)) {

String time = sdf.format (new Date ());
blackNumber = new PhoneBlackNumber (listNum
.. Get (i) getNumber (), "unknown", time);
dbHelper.insertPersonNumber (blackNumber);

Intent intt = new Intent ();
intt.setAction (PhoneReceiver.PHONE_RECEIVER_ACTION);
sendBroadcast (intt);
}
}
break;
}
}
}

super.onCallStateChanged (state, number);
}
};
telephone.listen (listener, PhoneStateListener.LISTEN_CALL_STATE);

No comments:

Post a Comment