我正在尝试在选择确定按钮时启动第三方应用。我有以下代码,但它没有聚集在一起。我是这方面的新手,无法弄明白。
public class Abc extends Activity {
static final String MARKET_SEARCH_Q_PNAME_ANDRIOS = "market://search?q=pname:com.3rdparty.app";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.getpft);
setTitle("Install 3rd party app?");
((Button) findViewById(R.id.Ok)).setOnClickListener(new Openabc());
((Button) findViewById(R.id.FindIt)).setOnClickListener(new FindZxingOnclickListener());
}
public class Openabc implements OnClickListener {
public void onClick(View v) {
Intent i = new Intent("android.intent.action.MAIN");
i.addCategory("android.intent.category.LAUNCHER");
i.setPackage("com.3rdparty.app");
startActivity(i);
}}
public class FindZxingOnclickListener implements OnClickListener {
public void onClick(View v) {
Intent marketLaunch = new Intent(Intent.ACTION_VIEW);
marketLaunch.setData(Uri.parse(MARKET_SEARCH_Q_PNAME_ANDRIOS));
startActivity(marketLaunch);
}}
}
答案 0 :(得分:2)
简而言之,您没有正确构建意图。
Here是通过意图启动另一个活动的示例。需要特别注意的是他们构建意图的方式。
如果不知道你想要触及的意图的具体细节,我真的无法帮助,但这里有链接的内容:
Intent intent = new Intent("com.3rdpartydev.abcapp.GO");
intent.setPackage("com.3rdpartydev.abcapp");
startActivity(intent);
这将告诉Android寻找知道如何处理com.3rdpartydev.abcapp.GO请求的内容,如果能够找到它,请启动它。
我建议重新阅读this以获取更多信息
答案 1 :(得分:1)
我暂时没有使用Android,但是快速查看文档,我认为这是问题所在:
你的类实际上不会做任何事情,因为它没有使用任何Android类(通过继承或组合)。创建Intent
后,您将调用一个空方法,因此不会发生任何事情。最简单的方法是删除private void startActivity(Intent i)
的定义,并将其他内容移至Activity
类。如果需要,让该类实现OnClickListener
,然后调用内置的startActivity
方法。