2015-09-10 13 views
7

Android搭載端末でのみ動作し、HDMIまたはワイヤレスで接続された外部ディスプレイでは動作しない著作権保護されたビデオを持つアプリで働いています。私は外部ディスプレイに表示するコンテンツを検出して制御するために偉大なAPI PresentationDisplayManagerが見つかりましたが、このAPIはAPI 17(android 4.2)とplusでのみ利用できます。どのようにこれをアンドロイド4.2の下で行うか、少なくとも接続されたディスプレイを検出して通知するためのアイデア。アンドロイド以前のAPIで外部ディスプレイを検出する方法17

質問#2: 画面録画のためにアンドロイドデバイスがPCに接続されているとどうなりますか? PresentationまたはDisplayManager APIはこれを検出できますか?

+2

#1 = 17 minimumSdkVersionすることを検討します。 #2 http://stackoverflow.com/questions/28606689/how-to-prevent-screen-capture-in-android –

答えて

1

任意のアイデア。

Distwoの回答に記載されているように、APIレベル16ではおそらくMediaRouterを超えて、古いバージョンのAndroidの外部ディスプレイへのアプリレベルのアクセスはサポートされていませんでした。比較的少数のデバイスが外部ディスプレイをサポートしていました。 OSレベルのスクリーンミラーリングしか提供していなかったものです。

このようなデバイスを手にして、外部ディスプレイの存在を示す一般的なLogCatメッセージがあるかどうかを確認することをお勧めします。 Linux- /procのレベルのもの。しかし、メーカーやデバイスによってこれらが異なることになる可能性は非常に高いです。

画面録画のためにアンドロイドデバイスをPCに接続するとどうなりますか? Presentation APIまたはDisplayManager APIはそれを検出するのに役立ちますか?

2

API 16に戻ると、MediaRouterクラスを使用できます。アンドロイドデベロッパーウェブサイトのCf。

プレゼンテーションのデフォルト表示を取得するには、MediaRouter.getSelectedRoute()を呼び出してROUTE_TYPE_LIVE_VIDEOを渡します。これは、ビデオプレゼンテーションの現在選択されているシステムのルートを記述するMediaRouter.RouteInfoオブジェクトを返します。 MediaRouter.RouteInfoがnullでない場合は、getPresentationDisplay()を呼び出して、接続されているディスプレイを表すDisplayを取得します。

完全なソース:検出し、接続されたディスプレイのために通知され、少なくともアンドロイド4.2または下にこれを行う方法で http://developer.android.com/about/versions/android-4.2.html#SecondaryDisplays

関連する問題