diff --git a/proprietary/samplePlayer/res/values/strings.xml b/proprietary/samplePlayer/res/values/strings.xml
index df73a499..ab4affc8 100644
--- a/proprietary/samplePlayer/res/values/strings.xml
+++ b/proprietary/samplePlayer/res/values/strings.xml
@@ -19,4 +19,5 @@
Drm Server
Portal Name
Update Button
+ This device does not support Widevine classic playback."
diff --git a/proprietary/samplePlayer/src/com/widevine/demo/AssetActivity.java b/proprietary/samplePlayer/src/com/widevine/demo/AssetActivity.java
index abecf9f1..ec62864b 100644
--- a/proprietary/samplePlayer/src/com/widevine/demo/AssetActivity.java
+++ b/proprietary/samplePlayer/src/com/widevine/demo/AssetActivity.java
@@ -19,10 +19,11 @@ import android.view.Gravity;
import android.view.View;
import android.util.Log;
+import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
-import android.widget.Button;
+import android.widget.Toast;
public abstract class AssetActivity extends Activity {
@@ -219,8 +220,16 @@ public abstract class AssetActivity extends Activity {
Log.d(TAG, "Click Asset path: " + assetPath);
Intent intent = new Intent(context, VideoPlayerView.class);
intent.putExtra("com.widevine.demo.Path", assetPath);
- context.startActivity(intent);
+ WidevineDrm drm = new WidevineDrm(context);
+ if (drm.canPlayClassicWidevine()) {
+ context.startActivity(intent);
+ } else {
+ Toast toast = Toast.makeText(
+ context, R.string.no_classic, Toast.LENGTH_SHORT);
+ toast.setGravity(Gravity.CENTER, 0, 0);
+ toast.show();
+ }
}
});
diff --git a/proprietary/samplePlayer/src/com/widevine/demo/WidevineDrm.java b/proprietary/samplePlayer/src/com/widevine/demo/WidevineDrm.java
index 7efbdc29..8416ca3e 100644
--- a/proprietary/samplePlayer/src/com/widevine/demo/WidevineDrm.java
+++ b/proprietary/samplePlayer/src/com/widevine/demo/WidevineDrm.java
@@ -162,19 +162,28 @@ public class WidevineDrm {
logMessage("plugin: " + mPluginVersion + "\n");
}
- public void registerPortal(String portal) {
+ public boolean canPlayClassicWidevine() {
+ return registerPortal(WidevineDrm.Settings.PORTAL_NAME);
+ }
+
+ public boolean registerPortal(String portal) {
DrmInfoRequest request = new DrmInfoRequest(DrmInfoRequest.TYPE_REGISTRATION_INFO,
Settings.WIDEVINE_MIME_TYPE);
request.put("WVPortalKey", portal);
DrmInfo response = mDrmManager.acquireDrmInfo(request);
- String drmInfoRequestStatusKey = (String)response.get("WVDrmInfoRequestStatusKey");
- if (null != drmInfoRequestStatusKey && !drmInfoRequestStatusKey.equals("")) {
- mWVDrmInfoRequestStatusKey = Long.parseLong(drmInfoRequestStatusKey);
+ boolean canPlayClassicWidevine = true;
+ try {
+ String drmInfoRequestStatusKey = (String)response.get("WVDrmInfoRequestStatusKey");
+ if (null != drmInfoRequestStatusKey && !drmInfoRequestStatusKey.equals("")) {
+ mWVDrmInfoRequestStatusKey = Long.parseLong(drmInfoRequestStatusKey);
+ }
+ mPluginVersion = (String)response.get("WVDrmInfoRequestVersionKey");
+ } catch (NullPointerException e) {
+ canPlayClassicWidevine = false;
}
-
- mPluginVersion = (String)response.get("WVDrmInfoRequestVersionKey");
+ return canPlayClassicWidevine;
}
public int acquireRights(String assetUri) {