@TargetApi(Build.VERSION_CODES.LOLLIPOP) void sendHeadsetHookLollipop() { MediaSessionManager mediaSessionManager = (MediaSessionManager) getApplicationContext().getSystemService(Context.MEDIA_SESSION_SERVICE); try { List<MediaController> mediaControllerList = mediaSessionManager.getActiveSessions (new ComponentName(getApplicationContext(), NotificationReceiverService.class)); for (MediaController m : mediaControllerList) { if ("com.android.server.telecom".equals(m.getPackageName())) { m.dispatchMediaButtonEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK)); log.info("HEADSETHOOK sent to telecom server"); break; } } } catch (SecurityException e) { log.error("Permission error. Access to notification not granted to the app."); } }
private void createPlayer(MediaController controller) { MprisReceiverPlayer player = new MprisReceiverPlayer(controller, AppsHelper.appNameLookup(context, controller.getPackageName())); controller.registerCallback(new MprisReceiverCallback(this, player), new Handler(Looper.getMainLooper())); players.put(player.getName(), player); }
private void setPendingIntentAndPackage(NowPlayingCardData data, MediaSessionManager sessionManager) { data.clickIntent = null; data.playerPackage = null; List<MediaController> controllers = sessionManager.getActiveSessions(null); MediaController controller = null; for (int i = 0; i < controllers.size(); i++) { MediaController aController = (MediaController) controllers.get(i); if ((aController.getFlags() & 2) != 0) { controller = aController; break; } } if (controller != null) { data.playerPackage = controller.getPackageName(); data.clickIntent = controller.getSessionActivity(); if (data.clickIntent == null) { data.clickIntent = getPendingIntentFallback(data.playerPackage); } } }
private void setPendingIntentAndPackage(NowPlayingCardData data, MediaSessionManager sessionManager) { data.clickIntent = null; data.playerPackage = null; List<MediaController> controllers = sessionManager.getActiveSessions(null); MediaController controller = null; for (int i = 0; i < controllers.size(); i++) { MediaController aController = (MediaController) controllers.get(i); if ((aController.getFlags() & 2) != 0) { controller = aController; break; } } if (controller != null) { data.playerPackage = controller.getPackageName(); data.clickIntent = controller.getSessionActivity(); if (data.clickIntent == null) { data.clickIntent = getPendingIntentFallback(data.playerPackage); } } }