Nano Hash - криптовалюты, майнинг, программирование

Блокировка входящих текстов (Android)

Я работаю над приложением, которое можно надеяться, возможность блокировать входящие текстовые сообщения (в зависимости от настроек пользователя), но у меня возникают проблемы обнаружения входящих сообщений.

Вы не возражаете, глядя на мои коды и дайте мне знать, что я делаю неправильно? Я просматривал другие вопросы, которые похожи на этот, но я не могу найти с развернутым ответом или достаточно информации для меня ссылку.

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;

  public class SmsReceiver extends BroadcastReceiver{

    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
            Bundle bundle = intent.getExtras();
             if (bundle != null){
                abortBroadcast();
             }
        }
    }

  }

Вот мой манифест

<receiver android:name=".listener.SmsReceiver">
 <intent-filter android:priority="100">
    <action android:name="android.provider.Telephony.SMS_RECEIVED" />
  </intent-filter>
</receiver>

Я следовал учебник по MobiForge (http://mobiforge.com/developing/story/sms-messaging-android), а также вопросы здесь:

Как блокировать входящие сообщения в Android?

Android - Listen Для входящих SMS-сообщений

Может кто-нибудь мне точку в правильном направлении здесь? Я был бы очень благодарен.

25.06.2012

  • возможно дубликат Как блокировать входящие сообщения в Android? 25.06.2012
  • Я прошел через ответы на этот вопрос и не нашел ничего полезного. 25.06.2012
  • Я пробовал изменения в моем манифесте приемника, такие как .SmsReceiver и .listener.SmsReceiver. Мое имя файла SmsReceiver.java 25.06.2012
  • В чем проблема? где это провал? Что в LogCat? Вы активизировали в коде с отладчиком? Каков ожидаемый результат? 25.06.2012
  • Я не уверен, где это не удается. Проблема заключается в том, что входящие тексты не заблокированы. Я не уверен, если приемник не работает или abortBroadcast (); не работает. 25.06.2012
  • Я использовал разрешение RECEIVE_MMS в моем манифесте, когда я использую разрешение RECEIVE_SMS. 26.06.2012
  • Оки - пожалуйста, вы можете редактировать свои вопросы и пометить его [решено] в названии вопроса? :) 26.06.2012
  • Конечно. Я довольно новый для переполнения стека, так что я все еще получаю повесить, как вещи работают здесь. :) 26.06.2012
  • Добро пожаловать на переполнение стека :) Обязательно проверьте Meta.stackoverflow.com и руководящие принципы, чтобы полностью понять, как это работает: D 26.06.2012
  • @PeterMerrill .. +1 но если вы решили проблему, то вы должны размещать в качестве ответа, так что это поможет другому. 26.06.2012

Ответы:


1

Вот что я использую для блокировки входящих текстов. Это, как я ответил на мой вопрос.


SmsReceiver.java

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class BroadCastReceiver extends BroadcastReceiver 
{
/** Called when the activity is first created. */
private static final String ACTION = "android.provider.Telephony.SEND_SMS";
public static int MSG_TPE=0;
public void onReceive(Context context, Intent intent) 
{ 
    String MSG_TYPE=intent.getAction();
        if(MSG_TYPE.equals("android.provider.Telephony.SMS_RECEIVED"))
    {
//          Toast toast = Toast.makeText(context,"SMS Received: "+MSG_TYPE , Toast.LENGTH_LONG);
//          toast.show();

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

    // show first message
    Toast toast = Toast.makeText(context,"BLOCKED Received SMS: " + smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);
    toast.show();
        abortBroadcast();
        for(int i=0;i<8;i++)
        {
            System.out.println("Blocking SMS **********************");
        }

    }
    else if(MSG_TYPE.equals("android.provider.Telephony.SEND_SMS"))
    {
        Toast toast = Toast.makeText(context,"SMS SENT: "+MSG_TYPE , Toast.LENGTH_LONG);
        toast.show();
        abortBroadcast();
        for(int i=0;i<8;i++)
        {
            System.out.println("Blocking SMS **********************");
        }

    }
    else
    {

        Toast toast = Toast.makeText(context,"SIN ELSE: "+MSG_TYPE , Toast.LENGTH_LONG);
        toast.show();
        abortBroadcast();
        for(int i=0;i<8;i++)
        {
            System.out.println("Blocking SMS **********************");
        }

    }

}

}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="APP.PACKAGE.NAMEHERE"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="10" />

<supports-screens 
android:largeScreens="true" 
android:normalScreens="true" 
android:smallScreens="true" 
android:resizeable="true" 
android:anyDensity="true" />

<uses-feature android:name="android.hardware.telephony" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_MMS" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".APPACTIVITYHERE"
        android:label="@string/app_name"
        android:configChanges="orientation|keyboardHidden" >


    <service android:name=".MyService" android:enabled="true"/>
     <receiver android:name="SmsReceiver">
      <intent-filter android:priority="2147483647">
       <action android:name="android.provider.Telephony.SMS_SENT"/>
      </intent-filter>
     </receiver>

     <service android:name=".MyServiceSentReceived" android:enabled="true"/>
      <receiver android:name="SmsReceiver">
        <intent-filter android:priority="2147483645">
         <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
        </intent-filter>
      </receiver>

</application>

The main thing to take away from the manifest is the service block, receiver block, and the permissions.

26.06.2012
  • Привет Питер, получающая часть коды работает, но отправка смс не работает, я имею в виду, что поставленный к принимающей стороне в то время как я хочу, чтобы заблокировать эти смс, когда служба работает. Можете ли вы указать на то, что происходит не так? 18.05.2013
  • @NaumanZubair я на самом деле не писать код, чтобы работать таким образом. Я написал, что это только блокировать входящие тексты. 28.05.2013
  • @PeterMerrill Пожалуйста, наставит меня для достижения этой Голе. Я буду очень благодарен вам за ваше внимание. Я застрял здесь, я хочу, чтобы блокировать исходящие смс. 01.07.2013
  • Я не считаю, что это возможно. 01.07.2013
  • Ответ на этот вопрос не должен быть принят. я применил это и он не работает. это показывает блокирование смс, но я получаю получить смс. 07.05.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..