Criar configurações de notificação push como WhatsApp "Notificação" configurações android

votos
0

Eu sou novo no desenvolvimento de aplicativos Android e aprender a desenvolver aplicações e características básicas. Eu quero criar configuração de notificação como WhtsApp tem ie

  1. Tom de notificação (Lista de todos os tons padrão)
  2. Vibrar: padrão (ou o meu próprio costume: off, padrão, curto, longo)

Quero que a característica básica como este aplicativo tem quando nova notificação é recebido no dispositivo. Eu estou usando GCM para enviar e receber notificações. Seria grande ajuda. Desde já, obrigado.

Menu de notificação de que eu quero é assim: http://i.stack.imgur.com/vanda.jpg

Editar:

SettingsActivity.java

import android.app.Activity;
import android.app.Notification;
import android.app.Service;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.Menu;
import android.widget.CompoundButton; 
import android.widget.Toast;
import android.widget.ToggleButton;
import android.widget.CompoundButton.OnCheckedChangeListener;

public class SettingsActivity extends Activity {

Vibrator vibrate;
ToggleButton tb;
boolean status= false;
public static final String MyPREFERENCES = MyPrefs;
SharedPreferences prefs;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_settings);
    tb = (ToggleButton) findViewById(R.id.toggleButton1);
    prefs = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
    if (prefs.contains(vibrate)) {
        status=Boolean.parseBoolean(prefs.getString(vibrate, ));
        if(status){
            tb.setChecked(true);
        }else{
            tb.setChecked(false);
        }
    }

    tb.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {
            // TODO Auto-generated method stub
            if (isChecked) {
                Toast.makeText(getApplicationContext(), ON,
                        Toast.LENGTH_LONG).show();
                status= true;
                Editor editor = prefs.edit();
                editor.putString(vibrate, status+);
                editor.commit();
                PreferencesData.saveString(getApplicationContext(), vibrate, status+);
            } else {
                Toast.makeText(getApplicationContext(), OFF,
                        Toast.LENGTH_LONG).show();
                status= false;
                Editor editor = prefs.edit();
                editor.putString(vibrate, status+);
                editor.commit();
                PreferencesData.saveString(getApplicationContext(), vibrate, status+);

            }
        }
    });
}

public boolean isVibrate(){

    return status;
}
}

GCMIntentService.java

 //some code

private static void generateNotification(Context context, String message) {
    int icon = R.drawable.ic_launcher;
    long when = System.currentTimeMillis();
    NotificationManager notificationManager = (NotificationManager)
            context.getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(icon, message, when);

    String title = context.getString(R.string.app_name);

    Intent notificationIntent = new Intent(context, MainActivity.class);
    // set intent so it does not start a new activity
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
            Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent intent =
            PendingIntent.getActivity(context, 0, notificationIntent, 0);
    notification.setLatestEventInfo(context, title, message, intent);
    notification.flags |= Notification.FLAG_AUTO_CANCEL;

    // Play default notification sound
    notification.defaults |= Notification.DEFAULT_SOUND;

    SettingsActivity stng = new SettingsActivity();
    Vibrator vibrator = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);

    boolean vibStatus = stng.isVibrate();

    //notification.sound = Uri.parse(android.resource:// + context.getPackageName() + your_sound_file_name.mp3);

    // Vibrate if vibrate is enabled
    if(vibStatus){
    notification.defaults |= Notification.DEFAULT_VIBRATE;
    vibrator.vibrate(500);
    }
    else{
        vibrator.cancel();
    }
    notificationManager.notify(0, notification);      

}
Publicado 12/03/2014 em 07:49
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Criar um Constant Classcomo

public class Constant {
public static boolean IS_VIBRATE = false;
}

Agora, implementar você Toggle Button OnCheckedChangeListenergosta

tb.setOnCheckedChangeListener(new OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(CompoundButton buttonView,
            boolean isChecked) {
        // TODO Auto-generated method stub
        if (isChecked) {
            Toast.makeText(getApplicationContext(), "ON",
                    Toast.LENGTH_LONG).show();
           Constant.IS_VIBRATE = true;
        } else {
            Toast.makeText(getApplicationContext(), "OFF",
                    Toast.LENGTH_LONG).show();
          Constant.IS_VIBRATE = false;
        }
    }

Agora, definir a sua Notification Vibratecondição como

 private static void generateNotification(Context context, String message) {
int icon = R.drawable.ic_launcher;
long when = System.currentTimeMillis();
NotificationManager notificationManager = (NotificationManager)
        context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);

String title = context.getString(R.string.app_name);

Intent notificationIntent = new Intent(context, MainActivity.class);
// set intent so it does not start a new activity
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
        Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent =
        PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, title, message, intent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;

// Play default notification sound
notification.defaults |= Notification.DEFAULT_SOUND;

//notification.sound = Uri.parse("android.resource://" + context.getPackageName() + "your_sound_file_name.mp3");

// Vibrate if vibrate is enabled
if(Constant.IS_VIBRATE){
 notification.defaults |= Notification.DEFAULT_VIBRATE;
 notificationManager.notify(0, notification);  
 }else{
 notificationManager.notify(0, notification);  
 }
}

Tente como por minha resposta e deixe-me saber

Respondeu 14/03/2014 em 13:24
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more