Android之Service

本文介绍了一种通过创建QQ服务器应用与微信客户端应用实现登录数据互通的方法。使用Java和AIDL技术,详细展示了如何设置服务端与客户端的连接、验证登录信息的过程。

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

今天博主就为大家讲解一下,两个应用程序实现数据传递。来写一下QQ与微信共用一个登录。简单来说,我们把QQ当做一个服务器,微信就是客户端。

首先先来个布局。




    

    
    
      

然后Java类

import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
import android.os.RemoteException;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private EditText et_main_number;
    private EditText et_main_pass;
    private Intent intent;
    private QQLogin qqLogin;
    private QQLoginInterface qqLoginInterface;
    //private QQLoginService.MyIBinder myIBinder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_main_number = (EditText) findViewById(R.id.et_main_number);
        et_main_pass = (EditText) findViewById(R.id.et_main_pass);
        intent = new Intent(this,QQLoginService.class);
    }

    ServiceConnection connection=new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            Log.i("test","绑定成功");
           // myIBinder = (QQLoginService.MyIBinder) service;
            //qqLogin = (QQLogin) service;
            qqLoginInterface = QQLoginInterface.Stub.asInterface(service);
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
            Log.i("test","绑定失败");
        }
    };




    @Override
    protected void onResume() {
        super.onResume();
        //绑定服务
        bindService(intent,connection, Service.BIND_AUTO_CREATE);
    }

    public void login(View view){
        String number=et_main_number.getText().toString();
        String pass=et_main_pass.getText().toString();
        boolean flag= false;
        try {
            flag = qqLoginInterface.login(number,pass);
        } catch (RemoteException e) {
            e.printStackTrace();
        }
        if(flag){
            Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(this, "登录失败", Toast.LENGTH_SHORT).show();
        }
    }
}
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;
import android.support.annotation.Nullable;
import android.util.Log;
import android.widget.Toast;

/**
 * Created by Administrator on 2017/7/15 0015.
 */

public class QQLoginService extends Service {

    class MyIBinder extends QQLoginInterface.Stub{
        @Override
        public boolean login(String number, String pass) throws RemoteException {
            if("10000".equals(number) && "123456".equals(pass)){
                  return true;
            }
            return false;
        }
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        Log.i("test","onBind");
        return new MyIBinder();
    }
}

接口:


/**
 * Created by Administrator on 2017/7/15 0015.
 */

public interface QQLogin {
    public boolean login(String number,String pass);
}

就这样服务器就写好了,接下来就是客户端,布局都一样直接上代码

import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
import android.os.RemoteException;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {

    private EditText et_main_number;
    private EditText et_main_pass;
    private Intent intent;
    private QQLoginInterface qqLoginInterface;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_main_number = (EditText) findViewById(R.id.et_main_number);
        et_main_pass = (EditText) findViewById(R.id.et_main_pass);
        intent = new Intent();
        ComponentName componentName=new ComponentName("com.zking.administrator.g160628_android24_myqq","com.zking.administrator.g160628_android24_myqq.QQLoginService");
        intent.setComponent(componentName);
    }

    ServiceConnection connection=new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            qqLoginInterface = QQLoginInterface.Stub.asInterface(service);
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {

        }
    };



    @Override
    protected void onResume() {
        super.onResume();
        //绑定服务
        bindService(intent,connection, Service.BIND_AUTO_CREATE);
    }

    public void login(View view){
        String number=et_main_number.getText().toString();
        String pass=et_main_pass.getText().toString();

        try {
            boolean b=qqLoginInterface.login(number,pass);
            if(b){
                Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
            }else{
                Toast.makeText(this, "登录失败", Toast.LENGTH_SHORT).show();
            }
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }
}

要引用几个AIDL,就可以了


标题基于SpringBoot+Vue的社区便民服务平台研究AI更换标题第1章引言介绍社区便民服务平台的研究背景、意义,以及基于SpringBoot+Vue技术的研究现状和创新点。1.1研究背景与意义分析社区便民服务的重要性,以及SpringBoot+Vue技术在平台建设中的优势。1.2国内外研究现状概述国内外在社区便民服务平台方面的发展现状。1.3研究方法与创新点阐述本文采用的研究方法和在SpringBoot+Vue技术应用上的创新之处。第2章相关理论介绍SpringBoot和Vue的相关理论基础,以及它们在社区便民服务平台中的应用。2.1SpringBoot技术概述解释SpringBoot的基本概念、特点及其在便民服务平台中的应用价值。2.2Vue技术概述阐述Vue的核心思想、技术特性及其在前端界面开发中的优势。2.3SpringBoot与Vue的整合应用探讨SpringBoot与Vue如何有效整合,以提升社区便民服务平台的性能。第3章平台需求分析与设计分析社区便民服务平台的需求,并基于SpringBoot+Vue技术进行平台设计。3.1需求分析明确平台需满足的功能需求和性能需求。3.2架构设计设计平台的整体架构,包括前后端分离、模块化设计等思想。3.3数据库设计根据平台需求设计合理的数据库结构,包括数据表、字段等。第4章平台实现与关键技术详细阐述基于SpringBoot+Vue的社区便民服务平台的实现过程及关键技术。4.1后端服务实现使用SpringBoot实现后端服务,包括用户管理、服务管理等核心功能。4.2前端界面实现采用Vue技术实现前端界面,提供友好的用户交互体验。4.3前后端交互技术探讨前后端数据交互的方式,如RESTful API、WebSocket等。第5章平台测试与优化对实现的社区便民服务平台进行全面测试,并针对问题进行优化。5.1测试环境与工具介绍测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值