728x90

 

 

예제대로 FCM을 구축하는데, onMessageReceived() 메소드에서 매개변수로 오는 RemoteMessage가 빈값이었다.

 

@Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);

        String title = remoteMessage.getData().get("title");
        String message = remoteMessage.getData().get("body");
        sendNotification(title,message);
    }

 

찾아보니, 이 부분을

String title = remoteMessage.getData().get("title");
String message = remoteMessage.getData().get("body);

이렇게 바꿔야한다고 한다.

 

String title = remoteMessage.getNotification().getTitle();
String message = remoteMessage.getNotification().getBody();

 

 

Reference

stackoverflow.com/questions/45019915/fcm-onmessagereceived-returns-blank-message-and-title-when-the-app-is-running/45020120

728x90
728x90

1. 단순하게 PendingIntent를 통해 24시간 후 값을 입력해서 Notification을 입력 => 스마트폰 재부팅 후에는 해당 설정이 증발함

 

2. 재부팅시에도 PendingIntent가 남아있게 하려면, Manifests에 부팅시 Broadcast를 실행하도록 BootReceiver의 IntentFilter를 설정해줘야한다.

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
...
...
<receiver
               android:name=".Broadcast.BootReceiver"
               android:enabled="true"
               android:exported="false" >
               <intent-filter>
                              <action android:name="android.intent.action.BOOT_COMPLETED" />
               </intent-filter>
</receiver>

 

3. BroadcastReceiver의 onReceive에 BOOT_COMPLETED에 대한 알람설정 정보를 정의 (자세한 사항은 하단 reference 원본 링크 참조) 

 

 

Reference

m.blog.naver.com/sysmbh0312/221229919502

728x90
728x90
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);

    for(int i = 0; i < menu.size(); i++){
        Drawable drawable = menu.getItem(i).getIcon();
        if(drawable != null) {
            drawable.mutate();
            drawable.setColorFilter(getResources().getColor(R.color.textColorPrimary), PorterDuff.Mode.SRC_ATOP);
        }
    }

    return true;
}

 

 

stackoverflow.com/questions/31953503/how-to-set-icon-color-of-menuitem

728x90
728x90

 

 

main.xml 파일에 다음을 추가한다.

<xmlns:app="http://schemas.android.com/apk/res-auto">

    <item

        android:id="@+id/action_settings"

        android:orderInCategory="100"

        android:title="@string/action_settings"

        android:checkable="true"

        app:showAsAction="never" />

</menu>

 

Java 파일에 다음을 추가한다.

Menu menu;


@Override
public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.main2, menu);
    this.menu = menu;
    menu.getItem(0).setChecked(true);
    return true;
}



@Override
public boolean onOptionsItemSelected(MenuItem item){
	int id = item.getItemId();
	if (id == R.id.action_settings){
		item.setChecked(false);
		return true;
	}

	return super.onOptionsItemSelected(item);

}

 

Reference

https://article2.tistory.com/634

728x90

+ Recent posts