Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android學習——利用反射調用@Hide隱藏函數

Android學習——利用反射調用@Hide隱藏函數

編輯:關於Android編程

2014-02-27

導語:本意想在代碼中實現設置動態壁紙的功能。


正文:

1、查看Android源碼WallpaperManager.java中有個方法

/** @hide */
public IWallpaperManager getIWallpaperManager() {
        return sGlobals.mService;
}
獲取到IWallpaperManager再setWallpaperComponent就可以了。

2、但是getIWallpaperManager()這個方法是@Hide的,所以無法直接調用。在此就可以用Java的反射方法來調用了:

Class c = WallpaperManager.class;
			Method method = c.getMethod("getIWallpaperManager");
			method.setAccessible(true);
			Object obj = method.invoke(wallpaperManager, null);
			//...intent
			((IWallpaperManager)obj).setWallpaperComponent(intent.getComponent());

3、但是問題又來了,報了沒有"android.permission.SET_WALLPAPER_COMPONENT"權限,這下沒轍了。這個權限是系統的。Android沒開發這功能,那就沒辦法了。


4、有一種說法,可以將你的app設置為system app就可以了,本文不再說明,主要記錄一下反射調用@Hide函數。

以上!

結尾:1)堅持寫寫博客

2)繼續學習開發


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved