• 大小: 179KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-11
  • 语言: Java
  • 标签: aidl  

资源简介

android studio 编译aidl以及示例demo。eclipse版本博客:http://blog.csdn.net/qq_16064871/article/details/51385691 我的博客地址:http://blog.csdn.net/qq_16064871

资源截图

代码片段和文件信息

package com.example.clientdemo;

import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.IBinder;

import com.example.server.IBoardADDInterface;

import java.util.List;

/**
 * 客户端的服务计算管理类
 * @author mmsx
 *
 */
public class CaculateManager {
//加法计算的服务
final String CACULATE_ADD = “COM.CACULATE.ADD“;

//aidi接口服务
IBoardADDInterface mService = null;

    /***
     * 服务绑定
     */
    public void bindService(Context context) {
     mContext = context;
if(mContext != null && isAppInstalled(mContext“com.example.serverdemo“)){
Intent intent = new Intent(“com.example.serverdemo“);
intent.setAction(CACULATE_ADD);//Service能够匹配的Action
intent.setPackage(“com.example.serverdemo“);//应用的包名
context.bindService(intentserviceConnection Context.BIND_AUTO_CREATE);
//        context.bindService(getExplicitIntent(mContextnew Intent(CACULATE_ADD))
//        serviceConnection Context.BIND_AUTO_CREATE);
}

    }

//判断应用是否安装
public boolean isAppInstalled(Context context String packageName) {
final PackageManager packageManager = context.getPackageManager();
List pinfo = packageManager.getInstalledPackages(0);
if (pinfo != null) {
for (int i = 0; i < pinfo.size(); i++) {
if (pinfo.get(i).packageName.contains(packageName)) {
return true;
}
}
}
return false;
}

//将隐式启动转换为显式启动兼容编译sdk5.0以后版本
public Intent getExplicitIntent(Context contextIntent implicitIntent){
PackageManager pm = context.getPackageManager();
List resolveInfos = pm.queryIntentServices(implicitIntent 0);
if (resolveInfos == null || resolveInfos.size()!= 1) {
return null;
}
Intent explicitIntent = null;
ResolveInfo info = resolveInfos.get(0);
String packageName = info.serviceInfo.packageName;
String className = info.serviceInfo.name;
ComponentName component = new ComponentName(packageNameclassName);
explicitIntent = new Intent(implicitIntent);
explicitIntent.setComponent(component);
return explicitIntent;
}

    Context mContext = null;
    
    /***
    * 解除服务绑定
    */
    public void unbindService()
    {
     if (mContext != null) {
     mContext.unbindService(serviceConnection);
}
    }
    
    /**
     * 加法计算
     * @param nValue1
     * @param nValue2
     * @return 结果
     */
    public int caculateAdd(int nValue1int nValue2)
    {
if (mService == null)
return 0;

try {
return mService.add(nValue1 nValue2);
} catch (Exception e) {
return 0;
}
    }

    
    //服务和aidl接口绑定
    private ServiceConnection serviceConnection = new ServiceConnection() {

@Override
public void onServiceDisconnected(ComponentName name) {
mService = nul

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件         31  2017-03-13 19:18  studio_aidl\.gradle\2.14.1\taskArtifacts\cache.properties

     文件         17  2017-03-13 19:31  studio_aidl\.gradle\2.14.1\taskArtifacts\cache.properties.lock

     文件      31511  2017-03-13 19:31  studio_aidl\.gradle\2.14.1\taskArtifacts\fileHashes.bin

     文件     215144  2017-03-13 19:31  studio_aidl\.gradle\2.14.1\taskArtifacts\fileSnapshots.bin

     文件      29042  2017-03-13 19:31  studio_aidl\.gradle\2.14.1\taskArtifacts\fileSnapshotsToTreeSnapshotsIndex.bin

     文件     128894  2017-03-13 19:31  studio_aidl\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin

     文件         11  2017-03-13 19:16  studio_aidl\.idea\.name

     文件        686  2017-03-13 19:16  studio_aidl\.idea\compiler.xml

     文件         76  2017-03-13 19:16  studio_aidl\.idea\copyright\profiles_settings.xml

     文件        400  2017-03-13 19:22  studio_aidl\.idea\encodings.xml

     文件        944  2017-03-13 19:20  studio_aidl\.idea\gradle.xml

     文件        450  2017-03-13 19:18  studio_aidl\.idea\libraries\support_v4_18_0_0.xml

     文件       2644  2017-03-13 19:25  studio_aidl\.idea\misc.xml

     文件        512  2017-03-13 19:20  studio_aidl\.idea\modules.xml

     文件        564  2017-03-13 19:16  studio_aidl\.idea\runConfigurations.xml

     文件     219258  2017-03-13 19:44  studio_aidl\.idea\workspace.xml

     文件        316  2017-03-13 19:08  studio_aidl\build.gradle

     文件       7113  2017-03-13 19:13  studio_aidl\ClientDemo\app.iml

     文件        911  2017-03-13 19:23  studio_aidl\ClientDemo\build.gradle

     文件       9104  2017-03-13 19:33  studio_aidl\ClientDemo\ClientDemo.iml

     文件        221  2017-03-13 19:08  studio_aidl\ClientDemo\src\main\aidl\com\example\server\IBoardADDInterface.aidl

     文件        791  2017-03-13 19:27  studio_aidl\ClientDemo\src\main\AndroidManifest.xml

     文件       3255  2017-03-13 19:31  studio_aidl\ClientDemo\src\main\java\com\example\clientdemo\CaculateManager.java

     文件       1158  2017-03-13 19:08  studio_aidl\ClientDemo\src\main\java\com\example\clientdemo\MainActivity.java

     文件       8217  2017-03-13 19:08  studio_aidl\ClientDemo\src\main\res\drawable-hdpi\ic_launcher.png

     文件       2557  2017-03-13 19:08  studio_aidl\ClientDemo\src\main\res\drawable-ldpi\ic_launcher.png

     文件       4062  2017-03-13 19:08  studio_aidl\ClientDemo\src\main\res\drawable-mdpi\ic_launcher.png

     文件      13563  2017-03-13 19:08  studio_aidl\ClientDemo\src\main\res\drawable-xhdpi\ic_launcher.png

     文件       1374  2017-03-13 19:08  studio_aidl\ClientDemo\src\main\res\layout\activity_main.xml

     文件        257  2017-03-13 19:08  studio_aidl\ClientDemo\src\main\res\menu\activity_main.xml

............此处省略83个文件信息

评论

共有 条评论