Android开发,从当前app跳转到其他app的制定Activity

实现这个功能最关键的一点,说三遍,一定用真机测试,真机测试,真机!!!

代码简单,网上也有很多demo。我就是做个记录。

下班回家没带测试机,以为10分钟解决战斗,就做个跳转的demo,结果,两个半小时,一直找原因,绝望之后回单位已测试,直接成功。。。虽然只是一个小demo!!

直接上代码,共有两个app,但是这里我以Activity的名称作为区分,MainActivityA跳转到RequestAction。

先看MainActivityA的代码

package com.ldx.testplugina;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ComponentName;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivityA extends AppCompatActivity {
    Intent intent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        intent = new Intent();
        intent.setAction("android.intent.action.VIEW");
        intent.setComponent(new ComponentName("com.ldx.testpluginb", "com.ldx.testpluginb.RequestAction"));
        intent.putExtra("cylsh", "1170701111111");
        intent.putExtra("keystr", "1DSD0EDB00012112");
        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent("android.intent.action.VIEW");

//              启动带回调的窗体
//              16是回调码
                try {
                    startActivityForResult(intent, 16);
                    startActivity(intent);
                } catch (Exception e) {
                    Toast.makeText(MainActivityA.this, "没找到Activity", Toast.LENGTH_LONG).show();
                }
            }
        });

    }
}

RequestAction代码

package com.ldx.testpluginb;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class RequestAction extends Activity {

    private static final String TAG = "RequestAction ";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_t);
        Intent intent = getIntent();
        String cylsh = intent.getStringExtra("cylsh");
        String keystr = intent.getStringExtra("keystr");
        Toast.makeText(RequestAction.this,cylsh,Toast.LENGTH_SHORT).show();
        Toast.makeText(RequestAction.this,keystr,Toast.LENGTH_LONG).show();

    }
}

需要注意的点有

1 被跳转的Activity 在Manifest中需要声明属性

android:exported="true"意思是将当前app暴露出去。

下面是Manifest中的代码

        <activity
            android:name=".RequestAction"
            android:exported="true">
<!--            android:theme="@android:style/Theme.Translucent.NoTitleBar">&lt;!&ndash;加上这一行使当前activity变透明&ndash;&gt;-->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值