主题 : Android 有一些 API 沒有放到 SDK 中, ,ex:import android.os.ServiceManager 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 37502
精华: 0
发帖: 48
金钱: 240 两
威望: 48 点
贡献值: 0 点
综合积分: 96 分
注册时间: 2011-02-11
最后登录: 2011-09-06
楼主  发表于: 2011-04-19 19:00

 Android 有一些 API 沒有放到 SDK 中, ,ex:import android.os.ServiceManager

Greeting ,
   我發現 Android 有一些 API 沒有放到 SDK 中,例如:

import android.os.ServiceManager;

在系統源碼中有大量的使用,但是如果是自己創建的工程,這樣的語法會出錯,我估計是 API 沒有放到 SDK 中,請問各位遇到這樣的情況,有什麼好的方法可以解決呢?

我知道將我們的源碼放到系統中一起編譯就好。但是我希望可以在 eclipse 中來編譯。然後透過 usb adb 傳到 mini6410 去執行,不知道這樣可行嗎?

謝謝
级别: 新手上路
UID: 37502
精华: 0
发帖: 48
金钱: 240 两
威望: 48 点
贡献值: 0 点
综合积分: 96 分
注册时间: 2011-02-11
最后登录: 2011-09-06
1楼  发表于: 2011-04-19 19:12
剛剛去查過了。應該是不行。

http://groups.google.com/group/android-developers/browse_thread/thread/7ffa8a9505255d3a

看來我要換一個方法作了
级别: 新手上路
UID: 37502
精华: 0
发帖: 48
金钱: 240 两
威望: 48 点
贡献值: 0 点
综合积分: 96 分
注册时间: 2011-02-11
最后登录: 2011-09-06
2楼  发表于: 2011-04-20 11:20
今天繼續研究這個問題,因為 android 很多 API 是隱藏的,例如:

/**
     * Construct an unencrypted, unauthenticated, RFCOMM server socket.
     * Call #accept to retrieve connections to this socket.
     * @return An RFCOMM BluetoothServerSocket
     * @throws IOException On error, for example Bluetooth not available, or
     *                     insufficient permissions.
     * @hide----!!!!!!!!!!
     */
    public BluetoothServerSocket listenUsingInsecureRfcommOn(int port) throws IOException

解決的方法有兩種。

1. 直接放到 Android Source 中編譯。但是這樣就不使用 eslipse
2. 通过途观java反射机制,调用该方法。

第二點,是我在網路上查的方法。但是對方沒有細說要如何做。請問有人可以指點,要如何使用第二種方法嗎?
级别: 新手上路
UID: 37502
精华: 0
发帖: 48
金钱: 240 两
威望: 48 点
贡献值: 0 点
综合积分: 96 分
注册时间: 2011-02-11
最后登录: 2011-09-06
3楼  发表于: 2011-04-20 11:43
剛剛搜尋到這篇文章,還沒細看,或許有幫助:

http://eeepage.info/java-hide-class/