Я новичок в android, я пытаюсь сделать приложение, используя широковещательный приемник, который отправляет сообщение в панель уведомлений, когда на устройство меняются обои. Он успешно установлен на устройстве, но не работает должным образом. Вот кодBroadcast Receiver
WallPagerNotificationReceiver.java
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
import android.widget.Toast;
public class WallPaperNotificationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
this.sendNotification(context, "You have changed Wallpaper");
}
private void sendNotification(Context ctx, String message)
{
//Get the notification manager
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager nm =
(NotificationManager)ctx.getSystemService(ns);
//Create Notification Object
int icon = R.drawable.ic_launcher;
CharSequence tickerText = "Hello";
long when = System.currentTimeMillis();
Notification notification =
new Notification(icon, tickerText, when);
//Set ContentView using setLatestEvenInfo
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.google.com"));
PendingIntent pi = PendingIntent.getActivity(ctx, 0, intent, 0);
notification.setLatestEventInfo(ctx, "Intimation", message, pi);
//Send notification
nm.notify(1, notification);
Toast.makeText(ctx,"Hello Nawin",Toast.LENGTH_LONG).show();
}
}
Manifest.xlm
<xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="in.ac.srmuniv"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<receiver android:name=".WallPaperNotificationReceiver">
<intent-filter>
<action android:name="android.intent.action.WALLPAPER_CHANGED" />
</intent-filter>
</receiver>
</application>
</manifest>
ли это правильный способ использовать широковещательный приемник? если это поможет мне, где я совершил ошибку?
Спасибо заранее.
P.S: Я не использую ни деятельность, ни обслуживание. В соответствии с процессом жизненного цикла мы можем иметь приоритетный процесс размещения широковещательного приемника http://developer.android.com/guide/components/processes-and-threads.html#Threads
Ваш вопрос не очень ясен. Каково ожидаемое поведение и что вы видите вместо этого? – Kuffs
Мой ожидаемый результат - получить сообщение «Уведомление» при изменении обоев. Моя проблема: теперь я не получаю уведомления, даже меняю обои – Vijay
Я поставил исправление для приемника ниже. Однако я не тестировал ваш код уведомления. Лучше всего использовать тост в методе onReceive, чтобы вы знали, что получили трансляцию. –