-1

我在 java 中有一个 Android 应用程序,我不希望我的应用程序在收到来电时关闭。

有谁知道防止来电关闭我在java中的应用程序的方法?

4

1 回答 1

0

是的,您可以阻止来电。使用此代码

String phonestate = bundle.getString(TelephonyManager.EXTRA_STATE);

try 
{
    if (TelephonyManager.EXTRA_STATE_RINGING.equalsIgnoreCase(phonestate)) 
    {
        try 
        {
            TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            Class c = Class.forName(tm.getClass().getName());
            Method m = c.getDeclaredMethod("getITelephony");
            m.setAccessible(true);
            telephonyService = (com.android.internal.telephony.ITelephony) m.invoke(tm);
        }
        catch (Exception e) 
        {
            e.printStackTrace();
        }

        if (prefStatus != null) 
        {
            if (count == 1) 
            {
                telephonyService.endCall();
                String prefLoginemail = myloginpref.getString("emailid", null);
                System.out.println(printdata + " prefLoginemail :: "+ prefLoginemail);

                Global.mNotificationManager = (NotificationManager) mxcontext.getSystemService(Context.NOTIFICATION_SERVICE);
                notifyDetails = new Notification(com.CellPhoneTerror.R.drawable.icon1,"CellPhoneTerror!", System.currentTimeMillis());
                myIntent = PendingIntent.getActivity(mxcontext, 0, new Intent(mxcontext, clsHomePage.class), 0);

                notifyDetails.setLatestEventInfo(mxcontext,"You Got a Call from Blocked Number.", "",myIntent);
                notifyDetails.flags |= Notification.FLAG_AUTO_CANCEL;
                Global.mNotificationManager.notify(Global.SIMPLE_NOTFICATION_ID,notifyDetails);

            }
        }
    }
    if (prefIncomingBlock.equals("true")) 
    {
        if (TelephonyManager.EXTRA_STATE_IDLE.equalsIgnoreCase(phonestate)) 
        {
            if (count == 0) 
            {
                System.out.println("if Cellphoneterror:"+ Global.clsIncomingNum);
                Intent block = new Intent(context, dialogbox1.class);
                block.setFlags(intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(block);
            }
        }
    }
} 
catch (Exception e) 
{
    e.printStackTrace();
}
于 2013-01-10T19:07:18.940 回答