資源簡介
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? 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個文件信息
評論
共有 條評論