android中实现一个APP启动另一个APP并实现类似微信分享

        在android中有时候我们需要做一个APP启动另一个APP,或者是实现做到类似微信或者QQ一样让第三方应用分享内容到自己的APP,那么我们改如何实现呢?下面我们就通过代码来演示实现的方法

ShareActivity.java 第三方应用里面代码的构造

public class ShareActivity extends AppCompatActivity implements View.OnClickListener {
    private Button mShare;//分享信息内容到另一个APP

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

    //初始化View
    private void initView() {
        mShare = (Button) findViewById(R.id.btn_share);
        mShare.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_share:
                sendShareMessage();
                break;
        }
    }

    //发送分享的信息
    private void sendShareMessage() {
        Intent intent = getPackageManager().getLaunchIntentForPackage("it.my.share");//主要用于判断用户是否安装了要分享过去的APP
        if (intent != null) {
            Intent share = new Intent();
            //it.my.share被分享应用的包名,it.my.share.GetShareActivity被分享应用所对应的要分享的Activity
            share.setClassName("it.my.share", "it.my.share.GetShareActivity");
            share.putExtra("message", "我是第三方应用分享过来的信息");
            startActivity(share);
        } else {
            Toast.makeText(getApplicationContext(), "你还没安装该应用,请先安装", Toast.LENGTH_LONG).show();
        }
    }
}
GetShareActivity.java 接收第三方应用分享过来的内容的Activity

public class GetShareActivity extends Activity {
    private TextView mGetShare;//显示被分享过来的内容
    private String mShareMessage;//获取分享过来的的信息
    private Bundle mBundle;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_get_share);
        mBundle = getIntent().getExtras();
        if (mBundle != null) {
            mShareMessage = mBundle.getString("message");
        }
        initView();
    }

    //初始化View
    private void initView() {
        mGetShare = (TextView) findViewById(R.id.tv_share);
        showMessage(mShareMessage);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        mBundle = intent.getExtras();
        if (mBundle != null) {
            mShareMessage = mBundle.getString("message");
            showMessage(mShareMessage);
        }
    }
    //显示对应分享的信息
    private void showMessage(String message){
        if (message != null) {
            mGetShare.setText(message);
        } else {
            mGetShare.setText("没有分享过来的内容,应用本身跳转过来的");
        }
    }
}

在AndroidManifest.xml里面也要配置
  <activity android:name=".GetShareActivity"
            android:launchMode="singleTask"
            >
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />
                <action android:name="android.intent.action.SEND" />
                <data android:mimeType="text/plain"/>
            </intent-filter>
        </activity>

附:源码下载地址

Android实现一个用于监听微信通知栏信息的app是可行的。首先需要在AndroidManifest.xml文件添加相应的权限,如读取通知的权限。 然后可以创建一个后台服务来监听微信的通知栏信息。该服务需要继承自NotificationListenerService类,并重写相应的回调方法,如onNotificationPosted()和onNotificationRemoved()方法。 在onNotificationPosted()方法,可以获取到微信通知栏的信息,包括通知标题、内容、发送者等。可以通过解析通知栏信息来判断是否为微信的通知,如果是,则可以处理相关逻辑,如将通知内容发送到其他应用或者进行特定的操作。 在onNotificationRemoved()方法,可以监听微信通知被移除的事件。可以在该方法进行一些处理,如取消监听或者进行数据统计等操作。 为了保证后台服务的持续运行,可以使用前台服务的方式来启动该服务,并在通知栏显示一个持续运行的通知,提醒用户该服务正在运行。 另外,为了保证通知栏监听的稳定性和兼容性,需要在代码考虑一些特殊情况,如当微信通知栏的布局发生变化时,需要进行适配并更新相应的解析逻辑。 最后,在设计app界面时,可以添加一些设置选项,允许用户自定义监听的微信通知类型,或者将监听到的通知内容显示出来。 总之,通过Android的通知栏监听机制,结合对微信通知栏信息的解析和处理,就可以实现一个用于监听微信通知栏的app
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值