我正在尝试在我的应用程序中实现DRM
但我遇到了一个问题。 canHandle()
始终返回false
DrmManagerClient.getOriginalMimeType(Uri)
;始终为http链接返回null
但是对于存储中的文件,一切都运行正常。
DrmManagerClient mDrmManager;
mDrmManager = new DrmManagerClient(this);
String testUri = myUrl;
String mimeType = getOriginalMimeType( testUri );
下面是获取mimetype的方法,但遗憾的是canHandle()总是返回false。
// get MimeType
public String getOriginalMimeType(String uri){
String mime = null;
try {
if( mDrmManager.canHandle(Uri.parse(uri), null) ){
mime = mDrmManager.getOriginalMimeType(Uri.parse(uri));
}
} catch (Exception e) {
Log.w(TAG, e.toString());
}
return mime;
}
我错过了什么吗? 显而易见的可能是我使用的网址不好,但是 我尝试过在不同的应用程序中使用的不同URL但结果是一样的 我也在清单文件中设置了INTERNET权限。我的想法已经不多了。问题是什么 在深入研究DrmManagerClient源代码之后,我注意到canHandle()的定义如下:
/**
* Checks whether the given MIME type or URI can be handled.
*
* @param uri URI for the content to be handled.
* @param mimeType MIME type of the object to be handled
*
* @return True if the given MIME type or URI can be handled; false if they cannot be handled.
*/
public boolean canHandle(Uri uri, String mimeType) {
if ((null == uri || Uri.EMPTY == uri) && (null == mimeType || mimeType.equals(""))) {
throw new IllegalArgumentException("Uri or the mimetype should be non null");
}
return canHandle(convertUriToPath(uri), mimeType);
}
canHandle(Uri uri , String mimeType)
基本上与canHandle( String path, mimeType )
相同,因为它将Uri转换为路径
这是否意味着Http Urls不会工作?
答案 0 :(得分:0)
我发现问题出在网址上 我测试了这两个链接,现在一切都很好。
第1流:http://commondatastorage.googleapis.com/wvmedia/sintel_main_720p_4br_tp.wvm
第2流:http://commondatastorage.googleapis.com/wvmedia/starz_main_720p_6br_tp.wvm
希望将来帮助某人。