如何从一个web应用程序设置主屏幕或锁屏图像
PUBLISHED
如何从一个web应用程序设置主屏幕或锁屏图像
在本教程中,我们会学习如何从相册中访问图片,并从一个web应用程序中选择图片设置成主屏幕或锁屏图片。
Tizen 应用程序API提供接口,从你的应用程序中启动一个供应者(或服务)应用程序。 在我们的例子中,我们会启动的供应者应用程序是相册应用程序,从这里我们会选择一个图片,这个图片将会被设置成主屏幕或锁屏的屏幕。 帮助我们实现的方法是,应用程序API的应用程序控制和 launchAppControl
为启动Gallery应用程序和SystemSetting API的 setProperty
方法,以将图片设置成主屏或锁屏。
我们来理解如何启动供应者应用程序(本地的图库应用)。 首先,创建一个ApplicationControl对象,定义启动该应用程序所需的属性。选择一个文件的操作类型应该是“http://tizen.org/appcontrol/operation/pick",其URI为空,并且MIME类型是image/jpeg(对于jpeg图像),或者对于任何类型的图像文件是image/*。
var appControl = new tizen.ApplicationControl( "http://tizen.org/appcontrol/operation/pick", null, "image/jpeg", null);
现在,调用launchAppControl方法来启动合适的应用程序(图库应用),以便选择图像文件。
tizen.application.launchAppControl(appControl, null, function() {console.log("Gallery launch successful"); }, function(e) {console.log("Gallery launch failed. Reason: " + e.message); }, GallareyImageSelected);
在成功地启动供应者应用程序(相册应用)后,被选择的图像数据信息将会被回传给调用的应用程序,作为一个回应,是在"ApplicationControlDataArrayReplyCallback"接口的成功的回调方法里面。
现在只有一个图像可以被选择,因此"gSelectedImagePath"保存被选择文件的路径。 一旦支持选择多个文件,需要使用数组来保存被选择文件的细节。
//Function to retrieve the selected image details from gallery var GallareyImageSelected = { onsuccess: function(data) { for(var i=0; i < data.length; i++) { console.log("#"+i+" key:"+data[i].key); for(var j=0; j < data[i].value.length; j++) { gSelectedImagePath= data[i].value[j]; console.log(" value#"+j+":"+data[i].value[j]); } } console.log("Selected image: "+ gSelectedImagePath); }, // Something went wrong onfailure: function() { console.log('The launch application control failed'); } }
下面的函数会通过systemsetting API的"setProperty"方法,将被选择的图像设置成主屏或锁屏。
//Function to set the selected Image as homescreen or lockscreen function setScreenMode() { var ImageSet = document.getElementsByName("image"); var selected= 1; var screen=null; // check if the image is selected or not if(!gSelectedImagePath) { alert("Image not selected. Please select image from gallery !!"); return 0; } // Get the selected screen mode option for(var i = 0; i < ImageSet.length; i++) { if(ImageSet[i].checked) { gScreenMode = ImageSet[i].value; selected=0; } } // Check if the screen mode is selected if(selected) { alert("Please select the screen to set and save"); return 0; } else { switch (gScreenMode) { case "homescreen": screen="HOME_SCREEN"; break; case "lockscreen": screen="LOCK_SCREEN"; break; default: console.log("Screen mode not set"); } // Sets the image as home screen or lock screen try { tizen.systemsetting.setProperty(screen, gSelectedImagePath, successCB, errorCB); } catch (err){ console.log("Fail to setProperty " + err); alert("Screen mode not choosen or Unable to set screen mode"); } } }