Android-푸시 알림
알림은 애플리케이션의 일반 UI 외부에서 사용자에게 표시 할 수있는 메시지입니다. Android에서 자신 만의 알림을 매우 쉽게 만들 수 있습니다.
Android는 NotificationManager이 목적을 위해 클래스. 이 클래스를 사용하려면 다음을 통해 안드로이드 시스템을 요청하여이 클래스의 객체를 인스턴스화해야합니다.getSystemService() method. 구문은 다음과 같습니다.
NotificationManager NM;
NM=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
그 후 다음을 통해 알림을 생성합니다. Notification 클래스 및 아이콘, 제목 및 시간 등과 같은 속성을 지정합니다. 구문은 다음과 같습니다.
Notification notify = new Notification(android.R.drawable.stat_notify_more,title,System.currentTimeMillis());
다음으로해야 할 일은 PendingIntent컨텍스트와 의도를 매개 변수로 전달하여 PendingIntent를 다른 응용 프로그램에 부여하면 다른 응용 프로그램이 자신 인 것처럼 지정한 작업을 수행 할 수있는 권한을 부여하는 것입니다.
PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(),0);
마지막으로해야 할 일은 setLatestEventInfoNotification 클래스의 메서드를 사용하고 알림 제목 및 본문 세부 정보와 함께 보류중인 인 텐트를 전달합니다. 구문은 다음과 같습니다. 그리고 마지막으로 NotificationManager 클래스의 알림 메서드를 호출합니다.
notify.setLatestEventInfo(getApplicationContext(), subject, body,pending);
NM.notify(0, notify);
알림 메서드 외에도 NotificationManager 클래스에서 사용할 수있는 다른 메서드가 있습니다. 그들은 아래에 나열되어 있습니다-
Sr. 아니요 | 방법 및 설명 |
---|---|
1 | cancel(int id) 이 메서드는 이전에 표시된 알림을 취소합니다. |
2 | cancel(String tag, int id) 이 방법은 이전에 표시된 알림도 취소합니다. |
삼 | cancelAll() 이 방법은 이전에 표시된 모든 알림을 취소합니다. |
4 | notify(int id, Notification notification) 이 메서드는 상태 표시 줄에 표시 할 알림을 게시합니다. |
5 | notify(String tag, int id, Notification notification) 이 방법은 상태 표시 줄에 표시 할 알림도 게시합니다. |
예
아래 예제는 NotificationManager 클래스의 사용을 보여줍니다. 알림을 만들 수있는 기본 애플리케이션을 생성합니다.
이 예제를 실험하려면 실제 장치 또는 에뮬레이터에서 실행해야합니다.
단계 | 기술 |
---|---|
1 | Android 스튜디오를 사용하여 packagecom.example.sairamkrishna.myapplication 아래에 Android 애플리케이션을 만듭니다. |
2 | src / MainActivity.java 파일을 수정하여 알림 코드를 추가합니다. |
삼 | 레이아웃 XML 파일 res / layout / activity_main.xml 수정 필요한 경우 GUI 구성 요소를 추가하십시오. |
4 | 애플리케이션을 실행하고 실행중인 Android 기기를 선택하고 여기에 애플리케이션을 설치하고 결과를 확인합니다. |
내용은 다음과 같습니다. MainActivity.java.
다음 코드에서 abc tutorialspoint.com의 로고를 나타냅니다.
package com.example.sairamkrishna.myapplication;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends ActionBarActivity {
EditText ed1,ed2,ed3;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed1=(EditText)findViewById(R.id.editText);
ed2=(EditText)findViewById(R.id.editText2);
ed3=(EditText)findViewById(R.id.editText3);
Button b1=(Button)findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tittle=ed1.getText().toString().trim();
String subject=ed2.getText().toString().trim();
String body=ed3.getText().toString().trim();
NotificationManager notif=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
Notification notify=new Notification.Builder
(getApplicationContext()).setContentTitle(tittle).setContentText(body).
setContentTitle(subject).setSmallIcon(R.drawable.abc).build();
notify.flags |= Notification.FLAG_AUTO_CANCEL;
notif.notify(0, notify);
}
});
}
}
내용은 다음과 같습니다. activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Notification"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textSize="30dp" />
.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials Point"
android:id="@+id/textView2"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true"
android:textSize="35dp"
android:textColor="#ff16ff01" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_below="@+id/textView2"
android:layout_alignLeft="@+id/textView2"
android:layout_alignStart="@+id/textView2"
android:layout_marginTop="52dp"
android:layout_alignRight="@+id/textView2"
android:layout_alignEnd="@+id/textView2"
android:hint="Name" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText2"
android:hint="Subject"
android:layout_below="@+id/editText"
android:layout_alignLeft="@+id/editText"
android:layout_alignStart="@+id/editText"
android:layout_alignRight="@+id/editText"
android:layout_alignEnd="@+id/editText" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/editText3"
android:hint="Body"
android:layout_below="@+id/editText2"
android:layout_alignLeft="@+id/editText2"
android:layout_alignStart="@+id/editText2"
android:layout_alignRight="@+id/editText2"
android:layout_alignEnd="@+id/editText2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Notification"
android:id="@+id/button"
android:layout_marginTop="77dp"
android:layout_below="@+id/editText3"
android:layout_alignRight="@+id/textView"
android:layout_alignEnd="@+id/textView" />
</RelativeLayout>
내용은 다음과 같습니다. AndroidManifest.xml.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sairamkrishna.myapplication" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
응용 프로그램을 실행 해 보겠습니다. Android 스튜디오에서 앱을 실행하려면 프로젝트의 활동 파일 중 하나를 열고
이제 제목, 제목 및 본문으로 필드를 채우십시오. 이것은 아래 그림에 나와 있습니다.
이제 알림 버튼을 클릭하면 상단 알림 표시 줄에 알림이 표시됩니다. 아래에 나와 있습니다-
이제 알림 표시 줄을 아래로 스크롤하여 알림을 확인합니다. 이것은 아래 그림에 나와 있습니다.