如题,源码中frameworks/base/media/java/android/drm/mobile1目录下有以下几个java文件
DrmConstraintInfo.java  DrmException.java  DrmRawContent.java  DrmRights.java  DrmRightsManager.java
新建一个2.2的应用程序,新增一个java类,直接使用这几个类的话,eclipse提示找不到,用Ctrl + Shift + O,也不能引入相应的包,但在源码的packages/apps/Mms/src/com/android/mms/drm下的类DrmWrapper.java中有使用,引入如下:
import android.drm.mobile1.DrmException;
import android.drm.mobile1.DrmRawContent;
import android.drm.mobile1.DrmRights;
import android.drm.mobile1.DrmRightsManager;为什么自己建立一个工程后,不能使用呢?

解决方案 »

  1.   

    呵呵,c++的实现在
    frameworks/base/media/libdrm/moblile1  源码自己调 
      

  2.   

    谢谢:)
    你的意思是直接使用C++的代码,不用java那几个类的实现,java类也只是一个对jni的一个封装,真正的实现还是在frameworks/base/media/libdrm/moblile1里。
    C++的实现我到知道是在那里,只是不知道如何使用那几个java类,老是引用失败,2.3也同样有这个问题。重新编译源码的sdk后,使用新编译的sdk,只有DrmRights类可以找到,但引用的package变成了
    import android.drm.DrmRights;,没有了mobile1
    不知道为什么会这样。
      

  3.   

    不不不 我的意思是要用Java调cpp,java只是起到传递参数的作用,具体是实现是cpp,可能我的语言不太准确,但是我的意思你明白……Mms不是有使用么? 你可以跟一下代码主要是我不懂eclipse  不知道问题是在程序少导入东西 还是eclipse的相关使用了
      

  4.   


    只有DrmRights类可以找到,但引用的package变成了import android.drm.DrmRights;,没有了mobile1。
    这句太对了!!!!!!  
      

  5.   

    Mms中有使用到,都是在源码里面,自己新建一个工程使用的话我就不清楚是不是一样的用法,还是说要封装一层才能用。
    对eclipse引用sdk里面的类的package路径组织结构,事实是我也不清楚是如何组织的,所以在eclipse中一找不到就很迷茫,听同事说有时在eclipse中虽然会提示错误,但在用adb编译时是可以编译过的,所以就更摸不着头脑了。
      

  6.   

    GOOGLE开发人员的本意是 提供几种不同的DRM C++ 的实现方案,放在mobile1  mobile2 mobile3...等等下,然后供大家使用,你需要什么,就链接那种到自己的项目中编译,最后都是叫DrmRights类,但是实现是不同的
      

  7.   

    但是在2.3里面就把mobile2完全去掉了,只剩下了mobile1.
      

  8.   

    嗯,这种现象很正常,Android是不断升级的不是么,在前一版本会预留些待处理的部分,在下一版本完善,又或者,因为某种原因,彻底取消。
    源码中,有很多类似的例子,不同实现方案来实现一个类
      

  9.   

    如何import com.google.android.mms.xxx等
    http://topic.csdn.net/u/20110413/11/854bc4a4-929c-400b-b886-4ca756531c62.html?seed=70638325&r=73050305#r_73050305
    应该是未公开的类,不知道如何才能引入?