denis156/notification-listener

Capture system-wide notifications in real-time and manage 'Notification Access' permissions on Android.

Maintainers

Package info

github.com/denis156/notification-listener

Language:Kotlin

Type:nativephp-plugin

pkg:composer/denis156/notification-listener

Statistics

Installs: 26

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

1.0.0 2026-05-07 18:36 UTC

This package is auto-updated.

Last update: 2026-05-07 18:44:36 UTC


README

PHP Version Laravel Version NativePHP Platform Android Author License

Plugin khusus Android untuk menangkap notifikasi sistem secara real-time dan mengelola izin "Notification Access". Sangat berguna untuk aplikasi yang membutuhkan integrasi mendalam dengan notifikasi perangkat lain seperti aplikasi monitoring transaksi, otomasi pesan, atau log sistem.

Caution

PENAFIAN (DISCLAIMER): Plugin ini memiliki kemampuan untuk membaca konten notifikasi dari aplikasi lain di perangkat pengguna. Penyalahgunaan plugin ini untuk aktivitas mata-mata (spying), pencurian data, atau pelanggaran privasi adalah DILARANG KERAS. Pengembang (denis156) TIDAK BERTANGGUNG JAWAB atas segala penyalahgunaan yang dilakukan oleh pihak ketiga.

Fitur Unggulan

  • Real-time Capture: Mendengarkan notifikasi masuk secara instan dari aplikasi apa pun (WhatsApp, Perbankan, E-wallet, dll).
  • Metadata Lengkap: Mengambil Judul, Isi Pesan, Nama Paket Aplikasi (com.whatsapp, dll), dan Timestamp.
  • Manajemen Izin: Menyediakan shortcut native untuk membuka halaman "Notification Access" di pengaturan Android secara langsung.
  • Background Persistence: Berjalan sebagai layanan latar belakang (Service) yang tetap aktif meskipun aplikasi tidak di foreground.
  • V3 Bridge Standards: Menggunakan struktur direktori resources/ yang sepenuhnya kompatibel dengan NativePHP Plugin Kit v3.

Instalasi

Tambahkan plugin ke proyek Laravel Anda melalui Composer:

composer require denis156/notification-listener

Daftarkan plugin di proyek NativePHP Anda untuk mengaktifkan fungsionalitas native:

php artisan native:plugin:register denis156/notification-listener

Jalankan build untuk mengkompilasi plugin ke dalam aplikasi native:

php artisan native:run android

Penggunaan

Sisi PHP (Laravel/Inertia/Livewire)

Gunakan facade NotificationListener untuk mengecek status dan meminta izin:

use Denis156\NotificationListener\Facades\NotificationListener;

// 1. Cek apakah izin akses notifikasi sudah diberikan
$isGranted = NotificationListener::getStatus();

// 2. Buka pengaturan sistem Android jika belum diizinkan
if (! $isGranted) {
    NotificationListener::requestPermission();
}

Menangkap Notifikasi (Event Listener)

Setiap kali notifikasi masuk, plugin akan memicu event NotificationReceived. Anda bisa menangkapnya menggunakan Listener Laravel:

namespace App\Listeners;

use Denis156\NotificationListener\Events\NotificationReceived;

class LogIncomingNotification
{
    public function handle(NotificationReceived $event)
    {
        // Data yang tersedia:
        // $event->title        (Judul Notifikasi)
        // $event->body         (Isi Pesan)
        // $event->app_package  (Nama Paket Aplikasi, misal: com.whatsapp)
        // $event->captured_at  (Timestamp saat diterima)
    }
}

Sisi JavaScript (Vue/React/Inertia)

Anda juga bisa memanggil fungsi native langsung dari frontend:

import { notificationListener } from '@denis156/notification-listener';

// Ambil status izin
const isGranted = await notificationListener.getStatus();

// Minta izin (Buka pengaturan)
if (!isGranted) {
    await notificationListener.requestPermission();
}

Panduan Debugging

Jika notifikasi tidak masuk atau status selalu false:

  1. Pantau Log Native: Gunakan php artisan native:tail untuk melihat aktivitas bridge dan log dari Android Service.
  2. Aktivasi Manual: Pada beberapa perangkat, izin harus diaktifkan manual di: Settings > Apps > Special app access > Notification access
  3. Optimasi Baterai: Pastikan aplikasi Anda tidak dibatasi oleh fitur penghemat baterai Android agar Service tetap berjalan di background.

Struktur Direktori (Standar v3)

packages/denis156/notification-listener/
├── nativephp.json          # Manifest Plugin & Bridge Functions
├── src/                    # Kode PHP (Service Provider, Facade, Events)
└── resources/
    ├── android/src/        # Kode Kotlin (NotificationListenerService)
    └── boost/guidelines/   # Instruksi spesifik untuk AI assistants

Lisensi

MIT License