1 changed files with 82 additions and 0 deletions
@ -0,0 +1,82 @@ |
|||
package com.vernu.sms.services; |
|||
|
|||
import android.app.*; |
|||
import android.content.BroadcastReceiver; |
|||
import android.content.Context; |
|||
import android.content.Intent; |
|||
import android.content.IntentFilter; |
|||
import android.os.IBinder; |
|||
import android.provider.Telephony; |
|||
import android.util.Log; |
|||
import android.widget.Toast; |
|||
|
|||
import androidx.core.app.NotificationCompat; |
|||
|
|||
import com.vernu.sms.R; |
|||
import com.vernu.sms.activities.MainActivity; |
|||
import com.vernu.sms.receivers.SMSBroadcastReceiver; |
|||
|
|||
public class StickyNotificationService extends Service { |
|||
|
|||
private static final String TAG = "StickyNotificationService"; |
|||
private final BroadcastReceiver receiver = new SMSBroadcastReceiver(); |
|||
|
|||
@Override |
|||
public IBinder onBind(Intent intent) { |
|||
Log.i(TAG, "Service onBind " + intent.getAction()); |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public void onCreate() { |
|||
super.onCreate(); |
|||
Log.i(TAG, "Service Started"); |
|||
|
|||
|
|||
IntentFilter filter = new IntentFilter(); |
|||
filter.addAction(Telephony.Sms.Intents.SMS_RECEIVED_ACTION); |
|||
filter.addAction(android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED); |
|||
registerReceiver(receiver, filter); |
|||
|
|||
Notification notification = createNotification(); |
|||
startForeground(1, notification); |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public int onStartCommand(Intent intent, int flags, int startId) { |
|||
Log.i(TAG, "Received start id " + startId + ": " + intent); |
|||
return START_STICKY; |
|||
} |
|||
|
|||
@Override |
|||
public void onDestroy() { |
|||
super.onDestroy(); |
|||
// unregisterReceiver(receiver); |
|||
Log.i(TAG, "StickyNotificationService destroyed"); |
|||
Toast.makeText(this, "Service destroyed", Toast.LENGTH_SHORT).show(); |
|||
} |
|||
|
|||
private Notification createNotification() { |
|||
String notificationChannelId = "stickyNotificationChannel"; |
|||
|
|||
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); |
|||
NotificationChannel channel = null; |
|||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { |
|||
channel = new NotificationChannel(notificationChannelId, notificationChannelId, NotificationManager.IMPORTANCE_HIGH); |
|||
channel.enableVibration(false); |
|||
channel.setShowBadge(false); |
|||
notificationManager.createNotificationChannel(channel); |
|||
|
|||
Intent notificationIntent = new Intent(this, MainActivity.class); |
|||
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT); |
|||
|
|||
Notification.Builder builder = new Notification.Builder(this, notificationChannelId); |
|||
return builder.setContentTitle("TextBee is running").setContentText("TextBee is running in the background.").setContentIntent(pendingIntent).setOngoing(true).setSmallIcon(R.drawable.ic_launcher_foreground).build(); |
|||
} else { |
|||
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, notificationChannelId); |
|||
return builder.setContentTitle("TextBee is running").setContentText("TextBee is running in the background.").setOngoing(true).setSmallIcon(R.drawable.ic_launcher_foreground).build(); |
|||
} |
|||
|
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue