资源简介
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.xm
文件 76 2017-03-13 19:16 studio_aidl\.idea\copyright\profiles_settings.xm
文件 400 2017-03-13 19:22 studio_aidl\.idea\encodings.xm
文件 944 2017-03-13 19:20 studio_aidl\.idea\gradle.xm
文件 450 2017-03-13 19:18 studio_aidl\.idea\libraries\support_v4_18_0_0.xm
文件 2644 2017-03-13 19:25 studio_aidl\.idea\misc.xm
文件 512 2017-03-13 19:20 studio_aidl\.idea\modules.xm
文件 564 2017-03-13 19:16 studio_aidl\.idea\runConfigurations.xm
文件 219258 2017-03-13 19:44 studio_aidl\.idea\workspace.xm
文件 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.xm
文件 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.xm
文件 257 2017-03-13 19:08 studio_aidl\ClientDemo\src\main\res\menu\activity_main.xm
............此处省略83个文件信息
评论
共有 条评论