Android7.0,NotificationListenerServiceが動かなくなりました
こんにちは。
私は自作クラス「NotificationLisetener(*1)」を作り、最近までは動いていたのですがいつの間にか動かなくなりました。例えばNotification accessを切り替えてもonListenerConnected()などが呼ばれません。
一旦、何もしない「NLStest(*2)」を作り正しく動くことを確認した後、それを(*1)にコピペしたのですが動きません。
それぞれしっかりとManifestも変更して確かめました。
なぜ(*1)は動かないのでしょうか。
試したこと
- プロジェクトをビルドし直す
- 別のNotificationListenerを作り動くことを確認
- Notification accessの切り替え。NLStestはちゃんと切り替わってました。
Android開発は始めたばかりなので至らないところがあると思いますがよろしくお願いいたします。
(*1)
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
public class NotificationListener extends NotificationListenerService {
private static final String TAG = "myDEBUG(refactor)";
@Override
public void onCreate() {
super.onCreate();
final int notifId = 4;
// 通知をタップしたき起動させる設定を施す
Intent showTaskIntent = new Intent(getApplicationContext(), MainActivity.class);
showTaskIntent.setAction(Intent.ACTION_MAIN);
showTaskIntent.addCategory(Intent.CATEGORY_LAUNCHER);
showTaskIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(
getApplicationContext(),
0,
showTaskIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
// ステータスバーへ表示
Notification.Builder builder = new Notification.Builder(getApplicationContext());
builder.setContentTitle("TANSU");
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon_tansu);
builder.setLargeIcon(bitmap);
builder.setSmallIcon(R.drawable.icon_tansu);
builder.setWhen(System.currentTimeMillis());
builder.setContentIntent(contentIntent);
startForeground(notifId, builder.build());
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(TAG, "onStartCommand");
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy()
{
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent)
{
return super.onBind(intent);
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
Log.i(TAG, "onRemoved()------------------------------------");
}
@Override
public void onListenerConnected()
{
Log.i(TAG, "NLS is on connected!");
}
@Override
public void onListenerDisconnected()
{
Log.i(TAG, "NLS is on disconnected...");
}
}
(*2)
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
public class NLStest extends NotificationListenerService {
private static final String TAG = "myDEBUG(refactor)";
@Override
public void onCreate() {
super.onCreate();
final int notifId = 4;
// 通知をタップしたき起動させる設定を施す
Intent showTaskIntent = new Intent(getApplicationContext(), MainActivity.class);
showTaskIntent.setAction(Intent.ACTION_MAIN);
showTaskIntent.addCategory(Intent.CATEGORY_LAUNCHER);
showTaskIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(
getApplicationContext(),
0,
showTaskIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
// ステータスバーへ表示
Notification.Builder builder = new Notification.Builder(getApplicationContext());
builder.setContentTitle("TANSU");
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon_tansu);
builder.setLargeIcon(bitmap);
builder.setSmallIcon(R.drawable.icon_tansu);
builder.setWhen(System.currentTimeMillis());
builder.setContentIntent(contentIntent);
startForeground(notifId, builder.build());
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(TAG, "onStartCommand");
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy()
{
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent)
{
return super.onBind(intent);
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
Log.i(TAG, "onRemoved()------------------------------------");
}
@Override
public void onListenerConnected()
{
Log.i(TAG, "NLS is on connected!");
}
@Override
public void onListenerDisconnected()
{
Log.i(TAG, "NLS is on disconnected...");
}
}