转自:http://groups.google.com/group/android-ndk/browse_thread/thread/d00884fe886e5233?fwc=1


Everything what can be done in Android Java can be done also in Native

code using JNI. The code just looks difficult and is harder to write,
but at least things are possible.
To get device IMEI, here's code:

JNIEnv &env = ...
jobject activity = ... (android.app.Activity object)
//TelephonyManager telephony_manager =
getSystemService(Context.TELEPHONY_SERVICE);
jmethodID mid = env.GetMethodID(env.GetObjectClass(activity),
"getSystemService", "(Ljava/lang/String;)Ljava/lang/Object;");
jobject telephony_manager = env.CallObjectMethod(activity, mid,
env.NewStringUTF("phone"));
//String s_imei = tm.getDeviceId();
mid = env.GetMethodID(env.GetObjectClass(telephony_manager),
"getDeviceId", "()Ljava/lang/String;");
jstring s_imei = (jstring)env.CallObjectMethod(telephony_manager,
mid);
if(env.ExceptionCheck()){
env.ExceptionClear();
return false;
}
const jchar *imei = env.GetStringCritical(s_imei, NULL);
// copy imei string anywhere you need
env.ReleaseStringCritical(s_imei, imei);

This assumes that your app is standard Android android.app.Activity,
and native code is called from this.


更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. 布局动画 属性初始 android:animateLayou
  2. android layout_weight讲解
  3. 针对4.0版本及以上版本的sharedpreferenc
  4. Android(安卓)根据 Url 跳转应用
  5. Android(安卓)3.0 r1 API中文文档(108)
  6. Android中界面实现全屏显示的两种方式
  7. 更新Android(安卓)SDK Manager Mac下修改
  8. Android(安卓)Studio 更新中的问题
  9. SeekBar自定义样式
  10. 在android 输出log 信息 用于调试