android sdk并没有提供ldap 的接口,看到网上有封装好的jar包。

ldap sdk下载地址:https://www.unboundid.com/products/ldap-sdk/files/unboundid-ldapsdk-2.3.4-se.zip

将unboundid-ldapsdk-se.jar引用到项目中。

MainAcitvity.java

package com.example.flashcall;import java.util.LinkedList;import android.app.Activity;import android.os.Bundle;import com.example.flashcall.SearchThread.OnSearchFinishedListener;import com.unboundid.ldap.sdk.Filter;import com.unboundid.ldap.sdk.LDAPException;import com.unboundid.ldap.sdk.SearchResult;import com.unboundid.ldap.sdk.SearchResultEntry;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// Make sure that the filter is valid.String filterString = "(cn=test)";Filter filter = null;try {filter = Filter.create(filterString);} catch (LDAPException le) {}// Create a thread to process the search.if (filter != null) {final SearchThread searchThread = new SearchThread(filter);searchThread.setResultListner(new OnSearchFinishedListener() {@Overridepublic void onFinished(SearchResult result) {final int entryCount = result.getEntryCount();if (entryCount == 0) {} else if (entryCount == 1) {SearchResultEntry ret = result.getSearchEntries().get(0);ToolUtil.log(ret.toString());} else {final LinkedList<SearchResultEntry> entries = new LinkedList<SearchResultEntry>(result.getSearchEntries());}}});searchThread.start();} else {}}}

LdapServer.java

package com.example.flashcall;import com.unboundid.ldap.sdk.LDAPConnection;public class LdapServer {// The port number of the directory server.private static final int PORT = 389;// The base DN to use when searching the server.public static final String BASE_DN = "dc=example,dc=com";// The address of the directory server.private static final String HOST = "127.0.0.1";private static final String BIND_DN = "domain\\username";private static final String BIND_PW = "123456";private static LDAPConnection conn;public static LDAPConnection getConnection() {if (conn == null) {try {conn = new LDAPConnection(HOST, PORT, BIND_DN, BIND_PW);} catch (Exception e) {}}return conn;}}

SearchThread.java

package com.example.flashcall;import com.unboundid.ldap.sdk.Filter;import com.unboundid.ldap.sdk.LDAPConnection;import com.unboundid.ldap.sdk.LDAPException;import com.unboundid.ldap.sdk.LDAPSearchException;import com.unboundid.ldap.sdk.ResultCode;import com.unboundid.ldap.sdk.SearchRequest;import com.unboundid.ldap.sdk.SearchResult;import com.unboundid.ldap.sdk.SearchScope;final class SearchThread extends Thread {/** * The size limit that will be used for searches. */static final int SIZE_LIMIT = 100;/** * The time limit (in seconds) that will be used for searches. */static final int TIME_LIMIT_SECONDS = 30;// The filter to use for the search.private final Filter filter;public OnSearchFinishedListener l;public void setResultListner(OnSearchFinishedListener ml) {l = ml;};SearchThread(final Filter filter) {ToolUtil.log(filter);this.filter = filter;}@Override()public void run() {SearchResult result = null;LDAPConnection conn = null;try {conn = LdapServer.getConnection();final SearchRequest request = new SearchRequest(LdapServer.BASE_DN,SearchScope.SUB, filter);request.setSizeLimit(SIZE_LIMIT);request.setTimeLimitSeconds(TIME_LIMIT_SECONDS);result = conn.search(request);} catch (LDAPException lse) {} finally {if (conn != null) {conn.close();}}if (result != null) {final ResultCode resultCode = result.getResultCode();if (resultCode != ResultCode.SUCCESS) {} else {if (l != null) {l.onFinished(result);}}}}public interface OnSearchFinishedListener {public void onFinished(SearchResult ret);}}

注意事项:

1、若包引用无效,在“Order and Export”中将jar文件勾上,clean一下。

2、在manifest中添加<uses-permission android:name="android.permission.INTERNET" />权限。

参考文档:

https://www.unboundid.com/products/ldapsdk/

更多相关文章

  1. 按钮的多样话 selector的使用
  2. Android(安卓)资源文件中的符号含义与说明
  3. drawable中的layer-list使用
  4. TextView添加Onclick点击无效没反应解决办法
  5. 【转载】android仿QQ列表的效果实现
  6. Android设置“android:clickable="false"无效。点击事件依旧触发
  7. Android,谁动了我的内存
  8. Android(安卓)入门文档_Android(安卓)4.0后JNI所做的更改
  9. android内存处理机制

随机推荐

  1. android双待手机获取每一张SIM卡的imei
  2. Android音频焦点处理服务
  3. 访问http资源之HttpUrlConnection get、p
  4. Android(安卓)Gradle Plugin + BuildTool
  5. 使用自己的数据库SQLite database
  6. RecyclerView优雅添加HeaderView FooterV
  7. Android获取USB权限
  8. Android实现手机相机
  9. Fragment.setArguments()方法向fragment
  10. Android(安卓)实现人脸检测