android apk互调

本文详细介绍了如何在Android应用间进行跳转操作,包括创建Intent、传递数据、使用组件名等方式,确保应用间的顺利交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.example.demo1;

import java.net.URI;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity
{
    private Button btn;
    private Intent intent;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                //
                //                // 确定intent可以被处理,防止软件崩溃
                //                PackageManager manager = getPackageManager();
                //                List<ResolveInfo> activities = manager.queryIntentActivities(
                //                        intent, 0);
                //                Log.i("info", activities.size() + "");
                //                for (int i = 0; i < activities.size(); i++)
                //                {
                //                    Log.i("info",
                //                            activities.get(i).activityInfo.applicationInfo
                //                                    .loadLabel(manager).toString() + "");
                //                }
                //
                //                //选择器,强制用户每次使用都做出选择
                //                String title = "choose";
                //                // 创建并打开一个选择器
                //                Intent chooser = Intent.createChooser(intent, title);

                /**
                 * 从一个apk跳转到另一个apk
                 */
                //1.
                ComponentName name = new ComponentName(
                //这个是另外一个应用程序的包名 
                        "com.tengw.aiyetang",
                        //这个参数是要启动的Activity 
                        "com.tengw.aiyetang.MainActivity");
                try
                {
                    intent = new Intent();
                    intent.setComponent(name);
                    //这里可以传数据
                    Bundle bundle = new Bundle();
                    bundle.putString("string", "");
                    bundle.putSerializable("arr", new String[] { "" });//可以传数组或对象
                    startActivity(intent);
                }
                catch (Exception e)
                {
                    Toast.makeText(MainActivity.this, "未找到对应apk",
                            Toast.LENGTH_SHORT).show();
                }

                //2.
                //                intent = new Intent("aiyetang");
                //在需要调用的apk的配置文件中的对应activity中添加
                //<intent-filter> 
                //      <action android:name=""/> 
                //      <categoryandroid:name="android.intent.category.DEFAULT"/> 
                //</intent-filter>(cataegory很重要)

                //                startActivity(intent);
            }
        });
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值