2012-07-22 1 views
1

나는 안드로이드를위한 phonegap 응용 프로그램을 만들고 있는데, 자바 스크립트를 사용하여 응용 프로그램의 www 디렉토리에 포함 된 .jpg에서 바탕 화면을 설정하는 방법이 필요합니다. 내 phonegap apps www 폴더의 리소스로 작동하는 phonegap 플러그인을 작성하는 방법은 무엇입니까?www 자산에서 전화 갭 설정 벽지? 안드로이드

+0

앱이 실행되고 있지 않을 때 앱의 자산에 액세스 할 수 없으므로 자산 폴더에서 사용하려는 모든 리소스를 SDCard로 복사해야합니다. – dda

답변

0

자산 폴더의 파일을 읽습니다. 플러그인

import java.io.IOException; 

    import org.apache.cordova.api.Plugin; 
    import org.apache.cordova.api.PluginResult; 
    import org.apache.cordova.api.PluginResult.Status; 
    import org.json.JSONArray; 

    import android.app.WallpaperManager; 
    import android.content.Context; 

    public class testPlugin extends Plugin { 
     public final String ACTION_SET_WALLPAPER = "setWallPaper"; 
     @Override 
     public PluginResult execute(String action, JSONArray arg1, String callbackId) { 
      PluginResult result = new PluginResult(Status.INVALID_ACTION); 
      if (action.equals(ACTION_SET_WALLPAPER)) { 
       WallpaperManager wallpaperManager = WallpaperManager.getInstance((Context) this.ctx); 
       try { 
        InputStream bitmap=null; 
        bitmap=getAssets().open("www/img/" + arg1.getString(0));//reference to image folder 
        Bitmap bit=BitmapFactory.decodeStream(bitmap); 
        wallpaperManager.setBitmap(bit); 
        result = new PluginResult(Status.OK); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
        result = new PluginResult(Status.ERROR, e.getMessage()); 
       } 
      } 
      return result; 
     } 
    } 

으로이 자바 스크립트 파일은 안드로이드 장치 권한

<uses-permission android:name="android.permission.SET_WALLPAPER" /> 

및 플러그인 imagefilename

window.plugins.test.set("imageFileName.jpg", 
     function() { 
      navigator.notification.alert("Set Success");  
     }, 
     function (e) { 
      navigator.notification.alert("Set Fail: " + e); 
     } 
    ); 

; 

var TestPlugin = function() {}; 

TestPlugin.prototype.set = function (ms, successCallback, failureCallback) { 
// navigator.notification.alert("OMG"); 
    return cordova.exec(successCallback, failureCallback, 'testPlugin', "setWallPaper", [ms]); 
}; 

PhoneGap.addConstructor(function() { 
    PhoneGap.addPlugin("test", new TestPlugin()); 
}) 

및 주요 파일을 호출 플러그인을 test.js입니다 .xml

<plugin name="testPlugin" value="com.android.test.testPlugin"/>