乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Launcher預(yù)設(shè)Widget 如果想在Launcher初始化時在Workspace中顯示自定義或者網(wǎng)上下載的widget來美化我們的產(chǎn)品,我們需要獲取Widget的ComponentName信息,

       劉恩道 2012-04-23
      如果想在Launcher初始化時在Workspace中顯示自定義或者網(wǎng)上下載的widget來美化我們的產(chǎn)品,我們需要獲取WidgetComponentName信息,主要是包括包名和類名。如果是別人寫的widget,在不知道包名和類名的情況下該如何辦?這就需要破解了,http:///?p=270 我是按照這個網(wǎng)址提供的方法進行破解的。只需要生成jar包,用JD打開即可看到包名和類名。我是在桌面上添加了一個天氣預(yù)報和數(shù)字時鐘兩個widget。以下是添加天氣預(yù)報的代碼:

       

      1. private boolean addWeatherWidget(SQLiteDatabase db, ContentValues values,TypedArray a) {  
      2.               
      3.             String packageName = a.getString(R.styleable.Favorite_packageName);  
      4.             String className = a.getString(R.styleable.Favorite_className);  
      5.             if(packageName == null || className == null){  
      6.                 return false;  
      7.             }  
      8.               
      9.             final int[] bindSources = new int[] {  
      10.                     Favorites.ITEM_TYPE_WIDGET_WEATHER,  
      11.             };  
      12.   
      13.             final ArrayList<ComponentName> bindTargets = new ArrayList<ComponentName>();  
      14.             bindTargets.add(new ComponentName(packageName,  className));  
      15.   
      16.             boolean allocatedAppWidgets = false;  
      17.   
      18.             // Try binding to an analog clock widget  
      19.             try {  
      20.                 int appWidgetId = mAppWidgetHost.allocateAppWidgetId();  
      21.   
      22.                 values.put(Favorites.ITEM_TYPE, Favorites.ITEM_TYPE_WIDGET_WEATHER);  
      23.                 values.put(Favorites.SPANX,a.getString(R.styleable.Favorite_spanX));  
      24.                 values.put(Favorites.SPANY, a.getString(R.styleable.Favorite_spanY));  
      25.                 values.put(Favorites.APPWIDGET_ID, appWidgetId);  
      26.                 db.insert(TABLE_FAVORITES, null, values);  
      27.   
      28.                 allocatedAppWidgets = true;  
      29.                 Log.i(LOG_TAG, "addWeatherWidget -- allocatedAppWidgets = "+allocatedAppWidgets);  
      30.             } catch (RuntimeException ex) {  
      31.                 Log.e(LOG_TAG, "Problem allocating appWidgetId", ex);  
      32.             }  
      33.             // If any appWidgetIds allocated, then launch over to binder  
      34.             if (allocatedAppWidgets) {  
      35.                 launchAppWidgetBinder(bindSources, bindTargets);  
      36.             }  
      37.   
      38.             return allocatedAppWidgets;  
      39.         }   

          注意必須要調(diào)用launchAppWidgetBinder(bindSources, bindTargets);方法,否則啟動widget時會提示”problem loading widget”,奇怪的是如果通過上面的方法添加數(shù)字時鐘,數(shù)據(jù)庫中數(shù)據(jù)添加成功,但桌面什么也沒有!至今還沒明白,解決方案是使用LauncherProvider 中現(xiàn)有的方法:addAppWidget(db,values,a)添加。

          以上都是代碼的添加方式,loadFavorites是加載了/package/apps/VLauncher/res/xml文件夾下的default_workspace.xml文件,所以在default_workspace.xml文件中還需要配置相關(guān)的widget信息。我的配置如下:

      1. <weather  
      2.             launcher:packageName="com.anddoes.fancywidget.pro"         
      3.             launcher:className="com.anddoes.fancywidget.pro.FancyWeather"         
      4.             launcher:container="-100"          
      5.         launcher:screen="0"          
      6.             launcher:x="0"               
      7.             launcher:y="0"               
      8.             launcher:spanX="2"           
      9.             launcher:spanY="1"/>   

      其中packageName ClassName都是破解才知道的。配置詳細(xì)說明如下:

      1. <widget  
      2. launcher:packageName="..."       //widget的packageName  
      3. launcher:className=" ..."       //實現(xiàn) widget的 receiver 類的名稱.  
      4.     launcher:container="..."        //放置的位置(只能為desktop)  
      5.         launcher:screen="..."        //放置在第幾屏上  
      6.         launcher:x="..."              //放置的x位置  
      7.         launcher:y="..."              //放置的y位置  
      8.         launcher:spanx="..."         //在x方向上所占格數(shù)  
      9.         launcher:spany="..."/>       //在y方向上所占格數(shù)  

      代碼完成了,編譯安裝即可看到效果。

      安裝時請注意:

          (1)通過adb push方式安裝。如:adb push launcher_v1.3.3.apk /system/app ,若通過adb install launcher_v1.3.3.apk 安裝會提示沒有綁定widget的權(quán)限,安裝過程會出現(xiàn)錯誤,并且提示“problem loading widget

          (2)安裝前必須將Launcher.db數(shù)據(jù)庫刪除!以上就是在launcher添加widget的具體步驟了。寫得不是很清晰,請指教,也祝您成功!

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多