Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何动态设置意向过滤器的最高优先级?_Java_Android - Fatal编程技术网

Java 如何动态设置意向过滤器的最高优先级?

Java 如何动态设置意向过滤器的最高优先级?,java,android,Java,Android,我是android新手。我已经开发了一个应用程序Text-Off。Text-Off应用程序阻止了不需要的呼叫和文本。它在4.2或更低版本中运行顺利,但它的文本块功能不适用于kitkat 4.4版本,并且在一次响铃后断开呼叫。我完全是黑人,我该怎么办。我正在使用以下代码 这是服务页面代码ServiceReceiver.java package com.rsoft.callListener; import android.content.BroadcastReceiver; import andr

我是android新手。我已经开发了一个应用程序Text-Off。Text-Off应用程序阻止了不需要的呼叫和文本。它在4.2或更低版本中运行顺利,但它的文本块功能不适用于kitkat 4.4版本,并且在一次响铃后断开呼叫。我完全是黑人,我该怎么办。我正在使用以下代码

这是服务页面代码ServiceReceiver.java

package com.rsoft.callListener;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;

public class ServiceReciever extends BroadcastReceiver
{

    private static TelephonyManager telephony;
    private static DeviceStateListener phoneListener;
    private static boolean firstTime=true;

    public ServiceReciever(Context context)
    {
        telephony=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
        phoneListener=new DeviceStateListener(context);
    }

    @Override
    public void onReceive(Context context, Intent intent)
    {   
        if(firstTime)
        {
            telephony.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
            firstTime=false;
        }
    }

    public void stopListening()
    {
        telephony.listen(phoneListener, PhoneStateListener.LISTEN_NONE);
        firstTime=true;
    }

}
 service = new ServiceReciever(getApplicationContext());
 sms = new SmsReceiver();
        registerReceiver(service, new IntentFilter(
                "android.intent.action.PHONE_STATE"));
        registerReceiver(service, new IntentFilter(
                "android.intent.action.NEW_OUTGOING_CALL"));
        IntentFilter intentSMS = new IntentFilter(
                "android.provider.Telephony.SMS_RECEIVED");
        intentSMS.setPriority(2147483647);
        registerReceiver(sms, intentSMS);
此页面用于SMS接收器

public void onReceive(Context context, Intent intent) 
    {
        this.context=context;
        blockSms(intent);
    }

    public void blockSms(Intent intent)
    {
        String MSG_TYPE=intent.getAction();
        final String android_id = Secure.getString(context.getApplicationContext()
                .getContentResolver(), Secure.ANDROID_ID);
        // Toast toast = Toast.makeText(context,"SMS Received: "+MSG_TYPE , Toast.LENGTH_LONG);
         //toast.show();

        Bundle bundle = intent.getExtras();
        Object messages[] = (Object[]) bundle.get("pdus");
       final SmsMessage smsMessage[] = new SmsMessage[messages.length];
        for (int n = 0; n < messages.length; n++) 
        {
            smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
        }

            //final BlockedContact cn=CallBlockerService.blackList.get(smsMessage[0].getOriginatingAddress());
            //final BlockedContact cn=CallBlockerService.blackList.get(android_id);
            //if(cn!=null && cn.getName().equals("1")||cn!=null && cn.getName().equals("3"))
            final String Status=TextOffService.deviceStatus;
            if(Status!=null && Status.equals("1")||Status!=null && Status.equals("3")|| Status != null
                    && Status.equals("5"))
            {
                abortBroadcast();
                //final String android_id = Secure.getString(context.getApplicationContext()
                        //.getContentResolver(), Secure.ANDROID_ID);
                Thread t=new Thread(new Runnable() 
                {

                    @Override
                    public void run() 
                    {
                        DateFormat dateFormat=new SimpleDateFormat("yyyy/MM/dd - HH:mm:ss");
                        Date date=new Date();
                        String currentDate=dateFormat.format(date);

                        //LOG FORMAT --> TITLE;;MESSAGE;;NAME;;NUMBER;;HOUR;;BODYMESSAGE;;SEPARATOR
                        String message="Text Blocked;;A message from "+smsMessage[0].getOriginatingAddress().replace("+", "")+" was blocked at "+currentDate+";;"+smsMessage[0].getOriginatingAddress().replace("+", "")+";;"+currentDate+";;"+smsMessage[0].getMessageBody().replace("\n", "")+";;\r\n";
                        sendSmsByManager(smsMessage[0].getOriginatingAddress().toString(),"I can't reply to your text at this time Driving ");
                        writeInLog(message);
                        // Building Parameters
                        List<NameValuePair> params = new ArrayList<NameValuePair>();
                        params.add(new BasicNameValuePair("DeviceUniqueID",android_id));
                        params.add(new BasicNameValuePair("MyLog", message));
                        params.add(new BasicNameValuePair("ContactNo", smsMessage[0].getOriginatingAddress().replace("+", "")));
                        params.add(new BasicNameValuePair("Created_Date", currentDate));
                        // getting JSON string from URL
                        JSONObject json = jsonParser.makeHttpRequest(
                                url_create_product, "POST", params);

                        // check log cat for response
                        Log.d("Create SMS log", json.toString());
                    }
                });

                t.start();
            }

请帮助我如何限制来电和文本

可以阻止来电的最新版本是Android 2.2

在Android 2.3和之后的版本中,您无法管理来电


对于阻止呼叫,您应该将联系人的语音信箱选项设置为“1”,并提供不存在的语音信箱号码。

您能提供更多详细信息或明确显示哪些不起作用吗?