在Android中,我试图通过虚拟应用程序的uri方案从我的应用程序中调用另一个虚拟应用程序。
在虚拟应用程序中,当用户点击一个按钮时,我想用一个返回值返回到我的应用程序。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:scheme="myapp"
android:host="my-poc-application.com"
android:pathPrefix="/id" />
</intent-filter>
String scheme = "myapp"; String host = "my-poc-application.com"; String id = "8"; Uri uri = Uri.parse(scheme + "://" + host + "/" + id); Intent intent = new Intent(Intent.ACTION_VIEW, uri); // Verify it resolves PackageManager packageManager = getPackageManager(); List activities = packageManager.queryIntentActivities(intent, 0); boolean isIntentSafe = activities.size() > 0; // Start an activity if it's safe if (isIntentSafe) { startActivityForResult(intent, 1); }
但没有调用虚拟应用程序。
以下是我的尝试:
在目标应用程序的活动中注册意图过滤器:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:scheme="target-app"
android:host="target-app.com" />
</intent-filter>
</activity>
注意:您不需要pathPrefix
btnGoBack.setOnClickListener{
val resultIntent = Intent()
resultIntent.putExtra("Result", "I am the result from target app")
setResult(1000, resultIntent)
finish()
}
//Read the id you sent while calling this app
val uri = intent.data
Toast.makeText(this, uri?.path.toString(), Toast.LENGTH_SHORT).show()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btnOpen.setOnClickListener{
val scheme = "target-app"
val host = "target-app.com"
val id = "8"
val uri = Uri.parse("$scheme://$host/$id")
val intent = Intent(Intent.ACTION_VIEW, uri)
// Verify it resolves
val activities = packageManager.queryIntentActivities(intent, 0)
val isIntentSafe = activities.size > 0
// Start an activity if it's safe
if (isIntentSafe) {
startActivityForResult(intent, 1)
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == 1000){
Toast.makeText(this, data?.getStringExtra("Result"), Toast.LENGTH_SHORT).show()
}
}
该活动有一个名为BTnOpen
的按钮。
在OnActivityResult
中,我们获得从目标应用程序发送的结果。
这段代码是kotlin的,将其转换为java应该是微不足道的。
普里亚布拉塔
我已经为我的浏览器游戏创建了一个AndroidWebView应用程序。我使用Javascript警报询问用户是否真的想要重置分数。但是我想使用Android警报而不是Javascript警报。所以我创建了一个Javascript接口。 现在我需要Javascript中Android警报的返回值。问题是Android警报有一个ClickListener。但是如何获取值并将其返回到Javascript
我通常使用getBoundingClientRect()。宽度当开发一个Swiper组件使用反应挂钩,但在一些例子getBoundingClientRect()。宽度返回0。 我在useEffect函数中使用了setTimeout,效果很好; 下面是简单的swiper代码演示: 简单swiper演示代码
问题内容: 我正在尝试使用Python Pandas查找具有 最大值的Country&。Place 这将返回最大值: 但我怎么得到相应Country和Place的名字吗? 问题答案: 假设有一个唯一的索引,则该行具有最大值: 请注意,返回索引标签。因此,如果在索引中有重复项,则标签可能不会唯一地 标识行,因此可能会返回多个行。 因此,如果没有唯一索引,则必须按照上述步骤使索引唯一。取决于,有时您可
我有一个应用程序具有这种转换: 输入后,我必须检查一个标志。然后我必须将其作为意图(让我们说)传递给。在中做了一些事情后,它会在按下按钮后返回。我所做的只是再次传递值为true的,然后再次启动活动C。所以发生的是它创建了另一个活动C。 我想做的是,我不必启动一个新的活动C,只需调用super即可使用以前的C。onBackPressed()。但我无法传递intentX的新值。有没有其他方法来实现我想
我有一个非常令人沮丧的问题。我正在使用Android摄像头启动摄像头并录制视频。 我期望的是:当我按stop时,我想通过onActivityResult返回我的应用程序活动,以执行一些操作,例如显示视频录制的拇指图像等。 发生的情况:当我按下stop时,屏幕会闪烁,好像回到应用程序,但随后会继续显示摄像头。我在ActivityResult中放了一个日志,它再也不会回这里了!请注意,这不是inten
我需要从从 Rest Assured 建模请求返回的 JSON 响应数据中获取两个值: 这抛出和 获取这些的正确、最好的方法是什么?我知道我可以链接关闭请求,但不确定如何获取