我在Activity
应用中的网页浏览中检测到URL
时尝试更改Android
。我收到这个错误:
Unable to start activity ComponentInfo{"xxx"}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=Open.Tok.Act }
这是我的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="dk.westsoftdevelopment.elaegen" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="17" />
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- Using the camera -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="a"
android:theme="@style/AppTheme"
>
<activity android:name=".OpenTokActivity" android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter>
<action android:name="Open.Tok.Act" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".WebViewActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
以下是我的WebView
的代码:
aWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if(url.equals("http://95.85.53.176/nhi/booktid"))
{
Log.d(LOGTAG, "GO TO OPENTOK!!!");
startActivity(new Intent("OpenTokAct"));
}
Log.d(LOGTAG,"current URL = " + url);
}
});
aWebView.loadUrl(mainUrl);
我也在onCreate()
的开头试过这个,但它给了我同样的错误......
Intent openStartingPoint = new Intent("Open.Tok.Act");
startActivity(openStartingPoint);
谢谢
答案 0 :(得分:2)
试试这个,
Intent intent = new Intent(MainActivity.this, Second.class);
startActivity(intent);
答案 1 :(得分:1)
点击Intent
时,您有两种选择:explicit or implicit。
现在,你正在做后者。为了使其正常工作,您的OpenTokActivity
意图过滤器需要相应更新:
<intent-filter>
<action android:name="Open.Tok.Act" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" /> <!-- optional -->
</intent-filter>`
为什么?
DEFAULT
方法需要Context.startActivity()
类别来解析您的活动。BROWSABLE
类别添加到可以从浏览器安全调用的活动中。请注意,由于您自己创建Intent
,因此您不需要'可浏览'类别。如果在稍后阶段,您希望网站自动触发重定向以在您的应用中打开活动,那么您需要将其重新添加。上面全部是documented here。
但是,除非您有多个可以处理自定义操作的活动,否则只需触发显式意图就会轻松得多:
startActivity(view.getContext(), OpenTokActivity.class);
您可以移除<intent-filter> ... </intent-filter>
的整个OpenTokActivity
部分,除非您故意添加LAUNCHER
类别(这将在顶级启动器中添加活动的入口点)
答案 2 :(得分:0)
在android中启动活动的不同方式。
第一种方式: - 明确
Intent intent = new Intent(this, MainActivity.class);
this.startActivity(intent);
第二种方式: - 隐含
startActivity(new Intent("dk.westsoftdevelopment.elaegen.OpenTokActivity"));
希望它会对你有所帮助。