启动活动的My TestApp具有以下代码:
public void startOperaView() {
Intent browserIntent = new Intent("org.droidtv.nettvbrowser.VIEW");
Uri luri = Uri.parse("connectedplanet.tv/olvs/test");
//browserIntent.setClass(getApplicationContext(), Browser.class);
//browserIntent.setAction("org.droidtv.nettvbrowser.VIEW");
browserIntent.setType("application/vnd.droidtv.sta");
browserIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
browserIntent.setData(luri);
startActivity(browserIntent);
}
包“org.droidtv.nettvbrowser”包含以下AndroidManifest.xml文件:
<activity
android:name="org.droidtv.nettvbrowser.Browser"
android:configChanges="locale"
android:label="@string/app_name" >
<intent-filter>
<action android:name="org.droidtv.nettvbrowser.VIEW" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/vnd.droidtv.sta" />
</intent-filter>
</activity>
奇怪的是,如果我在意图中指定实际的包名称它似乎工作正常,只有动作意图抛出这些错误。任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
请参阅http://developer.android.com/guide/topics/manifest/activity-element.html,您可以尝试设置android:exported="true"
android:exported
活动是否可以由其他应用程序的组件启动 - 如果可以,则为“true”,否则为“false”。如果为“false”,则活动只能由相同应用程序的组件或具有相同用户ID的应用程序启动。 默认值取决于活动是否包含意图过滤器。缺少任何过滤器意味着只能通过指定其确切的类名来调用活动。这意味着该活动仅供应用程序内部使用(因为其他人不知道类名)。所以在这种情况下,默认值为“false”。另一方面,至少有一个过滤器的存在意味着该活动是供外部使用的,因此默认值为“true”。
此属性不是限制活动与其他应用程序相关的唯一方法。您还可以使用权限来限制可以调用活动的外部实体(请参阅权限属性)。
或者您可以参考类似的内容:
<activity android:name="OutgoingCallBroadcaster"
android:theme="@android:style/Theme.NoDisplay"
android:permission="android.permission.CALL_PHONE"
android:configChanges="orientation|screenSize|keyboardHidden">
<!-- CALL action intent filters, for the various ways
of initiating an outgoing call. -->
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
<intent-filter android:icon="@drawable/ic_launcher_sip_call">
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sip" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="voicemail" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/phone" />
<data android:mimeType="vnd.android.cursor.item/phone_v2" />
<data android:mimeType="vnd.android.cursor.item/person" />
</intent-filter>
</activity>