的Youtube用户检测浏览器的Agent String
其中包含有关浏览器的信息。如果您要使用WebView
来显示YouTube视频,则可以设置WebView
的Agent String
。 您可以在互联网上找到不同浏览器的代理字符串。我在这里找到了一些:Agent Strings。
下面是如何通过模仿Firefox浏览器播放不允许在手机上鲍勃·马利的歌曲:
package com.my.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class MyActivity extends Activity {
private WebView mWebView ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWebView = new WebView(this);
// Enable javascript
mWebView.getSettings().setJavaScriptEnabled(true);
// Impersonate Mozzila browser
mWebView.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:21.0.0) Gecko/20121011 Firefox/21.0.0");
final Activity activity = this;
mWebView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
}
});
mWebView .loadUrl("http://youtube.com/watch?v=x59kS2AOrGM");
setContentView(mWebView);
}
}
编辑:
您还需要同意您的活动使用互联网,通过添加此行到您的AndroidManifest.xml
:
<uses-permission android:name="android.permission.INTERNET" />
是一个肮脏的黑客行吗?或者你正在寻找一个干净的解决方案? –
肮脏的黑客很好。 –
@MaximusS你有权访问图书馆的源代码(至少是通过反编译)吗?一个可以工作的肮脏的黑客就是找到'DefaultHttpClient'被初始化的地方,然后添加一个'HttpRequestInterceptor'(如果需要,通过反射)。然而,很难知道确切的步骤(或者即使有可能),但不知道它是哪个库。 – matiash