我正在尝试创建一个测试应用程序,它将从内部启动不同玩家应用程序的意图。
尝试过这样的事情:
X = 100
X = 200
我了解 startActivityForResult() 会在启动的intent完成作业后触发回调。正如 onActivityResult() 实现中的预期,我收到完成通知。
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
File file = new File("/sdcard/1234.mp4");
intent.setDataAndType(Uri.fromFile(file), "video/*");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setClassName("com.android.gallery3d","com.android.gallery3d.app.MovieActivity");
startActivityForResult(intent, ON_COMPLETION);
}
但是,我的问题是我得到的结果是" ZERO"即使播放成功,或者即使我在启动意图时指定了无效的文件名,也总是即resultCode = RESULT_CANCELED 。
这是我的清单文件:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.i(TAG,"onActivityResult with resultCode " + resultCode + "requestCode" + requestCode);
以下是我的问题:
1.我们如何更好地处理onCompletion事件?即已启动意图的返回状态,无论是播放成功还是失败
2.如果这不是正确的实现方式,请指导我到正确的教程集,我可以获得一些示例代码吗?
我的目标是多媒体播放器应用程序(如图库,MX播放器和VLC)的启动意图,并了解指定剪辑的文件播放是否成功。
我是新手,关于这个主题的一些建议会更有帮助。
答案 0 :(得分:1)
在Android Developer Activities
上写的在其他协议(例如ACTION_MAIN或ACTION_VIEW)中,您可能不会 在你期待的时候得到结果。
你不能指望返回你期望的动作视图,所以我所做的是实现一个自定义警告对话框,显示所有可能打开某个文件的应用程序,一个稍微修改过的版本,如下所示{{3} }
<强>更新强>
经过一次搜索后我找到more,你可以看到各种类,但重要的是你用意图调用的类不会改变返回值。
您正在调用扩展Activity而不是ActivityState的MovieActivity。
在抽象类that中,值正在变化并返回。也许那是你的问题。