繁体   English   中英

在Android中触发警报时遇到问题

[英]Having issues with triggring alarm in Android

我正在尝试在警报触发时创建通知。但是警报未触发,也没有显示通知。 这是MainActivity.java文件-

package com.kaushal28.kaushal1

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import java.util.Calendar;
import java.util.GregorianCalendar;

public class MainActivity extends AppCompatActivity {



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        scheduleAlarm();
    }

public void scheduleAlarm()
{

    Long time = new GregorianCalendar().getTimeInMillis()+10000;
    Intent intentAlarm = new Intent(this, AlarmReciever.class);

    AlarmManager alarmManager = (AlarmManager)  getSystemService(Context.ALARM_SERVICE);

    alarmManager.set(AlarmManager.RTC_WAKEUP,time, PendingIntent.getBroadcast(this,1,  intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));
     Toast.makeText(this, "Alarm Scheduled", Toast.LENGTH_LONG).show();
    }
}

这是AlarmReciever类别-

package com.kaushal28.kaushal1;

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.media.RingtoneManager;
import android.net.Uri;

public class AlarmReciever extends BroadcastReceiver
{ 
    @Override
    public void onReceive(Context context, Intent intent1)
    {

        System.out.println("Notification setup");
        Uri sound =      RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        Intent intent=new Intent(context,MainActivity.class);
PendingIntent       pendingIntent=PendingIntent.getActivity(context,1,intent,0);

        Notification notification=new Notification.Builder(context)
                .setContentText("TESTING NOTIFIACTION")
                .setContentTitle("Notification")
                .setContentIntent(pendingIntent)
                .setSmallIcon(android.R.drawable.sym_def_app_icon)
                .setSound(sound)
                .build();
NotificationManager notificationManager= (NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE)  ;
notificationManager.notify(1,notification);




    }
}

这是我的menifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kaushal28.kaushal1">
<uses-permission android:name="android.permission.WAKE_LOCK"></uses- permission>
<receiver android:process=":remote" android:name=".Alarm"></receiver>
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

我在这里想念的是什么? 任何帮助将不胜感激。

清单文件中缺少接收者,您需要根据docs将其添加。

为了简洁起见,我将相关内容解释如下:

将接收方添加到您应用的清单文件中:

<receiver android:name=".AlarmReciever"
        android:enabled="false">
</receiver>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM