Created
March 27, 2015 08:31
-
-
Save yihongyuelan/4018ec6c748bdd598d30 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class IncomingNotification extends Activity{ | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
timeSchedule(this); | |
} | |
private void timeSchedule(final Context context) { | |
final Timer timer = new Timer(); | |
timer.schedule(new TimerTask() { | |
@Override | |
public void run() { | |
postNotification(context); | |
} | |
//delay 5s | |
}, 5000); | |
} | |
private void postNotification(Context context) { | |
final NotificationManager mNotificationManager = | |
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); | |
final Bitmap largeIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher); | |
final Notification.Builder builder = getNotificationBuilder(context); | |
final PendingIntent inCallPendingIntent = createLaunchPendingIntent(context); | |
builder.setContentIntent(inCallPendingIntent); | |
configureFullScreenIntent(builder, inCallPendingIntent); | |
builder.setContentText("contentText"); | |
builder.setSmallIcon(R.drawable.ic_launcher); | |
builder.setContentTitle("contentTitle"); | |
builder.setLargeIcon(largeIcon); | |
builder.setColor(context.getResources().getColor(R.color.dialer_theme_color)); | |
createIncomingCallNotification(context, builder); | |
addPersonReference(builder); | |
final Notification notification = builder.build(); | |
mNotificationManager.notify(1,notification); | |
} | |
private Notification.Builder getNotificationBuilder(Context context) { | |
final Notification.Builder builder = new Notification.Builder(context); | |
builder.setOngoing(true); | |
builder.setPriority(Notification.PRIORITY_HIGH); | |
return builder; | |
} | |
private PendingIntent createLaunchPendingIntent(Context context) { | |
// Create PendingIntent to open wireless setting | |
final Intent intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); | |
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | |
| Intent.FLAG_ACTIVITY_NO_USER_ACTION | |
); | |
PendingIntent inCallPendingIntent = PendingIntent.getActivity(context, 0, intent, 0); | |
return inCallPendingIntent; | |
} | |
private void configureFullScreenIntent(Notification.Builder builder, PendingIntent intent) { | |
//Enable heads-up notification | |
builder.setFullScreenIntent(intent, true); | |
} | |
private void createIncomingCallNotification(Context context, Notification.Builder builder) { | |
builder.setUsesChronometer(false); | |
addDismissAction(context,builder); | |
addAnswerAction(context, builder); | |
} | |
private void addDismissAction(Context context, Notification.Builder builder) { | |
PendingIntent answerVoicePendingIntent = createNotificationPendingIntent( | |
context, "com.seven.testpp"); | |
builder.addAction(R.drawable.ic_launcher, | |
"dismiss", | |
answerVoicePendingIntent); | |
} | |
private PendingIntent createNotificationPendingIntent(Context context, String action) { | |
final Intent intent = new Intent(action, null, | |
context, NotificationBroadcastReceiver.class); | |
return PendingIntent.getBroadcast(context, 0, intent, 0); | |
} | |
public static class NotificationBroadcastReceiver extends BroadcastReceiver { | |
@Override | |
public void onReceive(Context context, Intent intent) { | |
final String action = intent.getAction(); | |
Log.i("Seven", "Broadcast from Notification: " + action); | |
} | |
} | |
private void addAnswerAction(Context context, Notification.Builder builder) { | |
PendingIntent answerVoicePendingIntent = createNotificationPendingIntent( | |
context, "com.seven.testpp"); | |
builder.addAction(R.drawable.ic_launcher, | |
"answer", | |
answerVoicePendingIntent); | |
} | |
private void addPersonReference(Notification.Builder builder) { | |
builder.addPerson(Uri.fromParts("tel", "13800138000", null).toString()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment