For*_*rce 13 android sharing android-activity
我搜索了很多,但我没有找到如何导出活动的精确答案,因此应用程序可以启动它startActivityforResult.
我如何实现这一目标?我是否必须在某些方面更改清单?
Ton*_*han 23
作为Dalmas回答的替代方案,您实际上可以导出一个Activity而不创建<intent-filter>(以及提出自定义操作的麻烦).
在Manifest编辑你的Activity标签时如下:
<activity
android:name=".SomeActivity"
....
android:exported="true" />
Run Code Online (Sandbox Code Playgroud)
重要的是android:exported="true",此export标记确定"活动是否可以由其他应用程序的组件启动".如果你<activity>包含a <intent-filter>那么这个标签被设置为true自动,如果没有,则false默认设置为.
然后启动Activity这样做:
Intent i = new Intent();
i.setComponent(new ComponentName("package name", "fully-qualified name of activity"));
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
当然,使用此方法,您需要知道要尝试启动的活动的确切名称.
Dal*_*mas 14
您需要在Manifest中声明一个intent-filter(我从Barcode Scanner中获取了以下示例):
<activity android:name="...">
<intent-filter>
<action android:name="com.google.zxing.client.android.SCAN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
然后使用相同的操作字符串创建一个intent:
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
startActivityForResult(intent, code);
Run Code Online (Sandbox Code Playgroud)
Android应该开始您的活动(如果有多个应用程序共享相同的操作字符串,它将显示一个下拉框).
| 归档时间: |
|
| 查看次数: |
18227 次 |
| 最近记录: |