① 手機上java的編程軟體 RBasic For Mobile1.0 在哪裡下載啊
這位朋友你好,你可以去專業的手機網站下載軟體的啊,比如「宜搜手機搜索」,我現在的手機就是在那裡下載軟體的,你只需手機登錄宜搜,然後點擊「軟體」選項,設置好機型,然後你可以進入「分類」里尋找你想要的軟體,或者直接在輸入框里搜索你想要軟體的名稱,然後就可以下載了。如果你的手機里有UC瀏覽器或者QQ瀏覽器,你還可以使用它們的「離線下載」功能,離線下載不僅能為你快速下載軟體,還能為你節省流量。希望我的回答能幫到你,滿意請採納,謝了。
② Java如何根據請求判斷是移動端還是pc端
代碼如下:
publicbooleanJudgeIsMoblie(HttpServletRequestrequest){
booleanisMoblie=false;
String[]mobileAgents={"iphone","android","phone","mobile","wap","netfront","java","operamobi","operamini","ucweb","windowsce","symbian","series","webos","sony","blackberry","dopod","nokia","samsung","palmsource","xda","pieplus","meizu","midp","cldc","motorola","foma","docomo","up.browser","up.link","blazer","helio","hosin","huawei","novarra","coolpad","webos","techfaith","palmsource","alcatel","amoi","ktouch","nexian","ericsson","philips","sagem","wellcom","bunjalloo","maui","smartphone","iemobile","spice","bird","zte-","longcos","pantech","gionee","portalmmm","jigbrowser","hiptop","benq","haier","^lct","320x320","240x320","176x220","w3c","acs-","alav","alca","amoi","audi","avan","benq","bird","blac","blaz","brew","cell","cldc","cmd-","dang","doco","eric","hipt","inno","ipaq","java","jigs","kddi","keji","leno","lg-c","lg-d","lg-g","lge-","maui","maxo","midp","mits","mmef","mobi","mot-","moto","mwbp","nec-","newt","noki","oper","palm","pana","pant","phil","play","port","prox","qwap","sage","sams","sany","sch-","sec-","send","seri","sgh-","shar","sie-","siem","smal","smar","sony","sph-","symb","t-mo","teli","tim-","tosh","tsm-","upg1","upsi","vk-v","voda","wap-","wapa","wapi","wapp","wapr","webc","winw","winw","xda","xda-","Googlebot-Mobile"};
if(request.getHeader("User-Agent")!=null){
for(StringmobileAgent:mobileAgents){
if(request.getHeader("User-Agent").toLowerCase().indexOf(mobileAgent)>=0){
isMoblie=true;
break;
}
}
}
returnisMoblie;
}
③ 微信APP怎麼做
MOTODEV Studio for Android
MOTODEV Studio for Android,這是基於Android的開發環境,為開發者們提供新的MOTODEV App Accelerator Program使他們可以開發出更適合摩托羅拉Android手機的應用程序。
J2ME開發插件 Mobile Tools for Java
Mobile Tools for Java (MTJ) 是Nokia公司開發的一款 Eclipse插件,用於支持 Java 手機應用程序開發。其前身就是大名鼎鼎的 EclipseME。
NOKIA手機開發包 gnokii
gnokii 是一個NOKIA手機開發包,可支持大多數NOKIA手機的型號。功能無比強大可以修改LOGO,收發簡訊,撥打/接聽電話,編輯鈴聲。甚至還可以取到對方手機的蜂窩號(Cell ID),從而起到定位的作用。
apk文件修改工具 Root Tools
RootTools是一個新的[4],Android開發者可以在這一工具軟體的支持下,對.apk格式的文件進行再次修改,讓程序表現更加出色,滿足用戶的需求。Root Tools裡面自帶有很多工具,比如BusyBox,它裡面集成壓縮了很多Linux的工具和命令,這樣軟體開發者在對....
IDEA的Android開發插件 idea-android
idea-android 是在 IDEA 集成開發環境中開發 Android 應用程序的插件。
Android開發工具 MOTODEV Studio
MOTODEV Studio是摩托羅拉公司開發的 Android 應用開發工具。這是一個 Eclipse 的插件。 該插件同時也提供了 JavaME 應用的開發和 WebUI 的開發功能。
④ java中如何判斷請求是來自手機端還是web端
控制器中接收user—Agent,我們是spring mvc框架,controller中寫
String ua = request.getHeader("User-Agent");
下面就是一個基本方法了,可以寫在一個util類中,我們是放在了StringUtil.java中
private final static String[] agent = { "Android", "iPhone", "iPod","iPad", "Windows Phone", "MQQBrowser" };
定義移動端請求的所有可能類型
方法參數為我們控制器中接收的user——Agent,
/**
* 判斷User-Agent 是不是來自於手機
* @param ua
* @return
*/
public static boolean checkAgentIsMobile(String ua) {
boolean flag = false;
if (!ua.contains("Windows NT") || (ua.contains("Windows NT") && ua.contains("compatible; MSIE 9.0;"))) {
// 排除 蘋果桌面系統
if (!ua.contains("Windows NT") && !ua.contains("Macintosh")) {
for (String item : agent) {
if (ua.contains(item)) {
flag = true;
break;
}
}
⑤ java修改文件中的記錄
建議:可以用xml來描述記錄結構,解析起來也方便快捷
以下提供對象模型以及實現.如果認可代碼,請加分 200,謝謝!
先看看記錄的每一行是如何用JAVA面向對象思想描述
public interface RowData {
public int getColumns();
public Object getDataAtColumn(int column);
}
再看解析器有哪些功能可對外提供:
import java.io.*;
public interface RowDataParser {
public RowData[] parser(InputStream in) throws IOException;
public void save(RowData[] datas,OutputStream out) throws IOException;
}
話費單上的每行記錄的實現:
final public class Fee implements RowData{
private String mobile;
private String name;
private String password;
private float fee;
public Fee(String mobileNumber,String name,String password,float fee) {
setMobile(mobileNumber);
this.setName(name);
this.setPassword(password);
this.setFee(fee);
}
public Fee(){}
public int getColumns() {return 4;}
public String toString() {
return "mobile="+mobile + " name="+name + " password="+password+" fee="+fee;
}
public Object getDataAtColumn(int column) {
switch (column) {
case 0: return getMobile();
case 1: return getName();
case 2: return getPassword();
case 3: return getFee();
default:return null;
}
}
public String getMobile() {return mobile;}
public void setMobile(String mobile) {this.mobile = mobile;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getPassword() {return password;}
public void setPassword(String password) {this.password = password;}
public float getFee() {return fee;}
public void setFee(float fee) {this.fee = fee;}
}
解析器的實現
import java.io.*;
import java.util.*;
final public class DefaultRowDataParser implements RowDataParser{
private final static int BUFFER_SIZE = 200;
private final static String SPLIT_STRING = " ";
public RowData[] parser(InputStream in) throws IOException {
InputStreamReader inReader = new InputStreamReader(in);
BufferedReader bufReader = new BufferedReader(inReader,BUFFER_SIZE);
List<RowData> datas = new ArrayList<RowData>();
String s;
for (s = bufReader.readLine(); s!=null; ) {
Fee fee = new Fee();
String[] ds = s.split(SPLIT_STRING);
fee.setMobile(ds[0]);
fee.setName(ds[1]);
fee.setPassword(ds[2]);
fee.setFee(Float.parseFloat(ds[3]));
datas.add(fee);
s = bufReader.readLine();
}
bufReader.close();
inReader.close();
return datas.toArray(new RowData[]{});
}
public void save(RowData[] datas,OutputStream out) throws IOException {
OutputStreamWriter ow = new OutputStreamWriter(out);
BufferedWriter bufOut = new BufferedWriter(ow);
for (RowData rd : datas) {
for (int i = 0,j=rd.getColumns(); i < j; i++) {
bufOut.write(rd.getDataAtColumn(i).toString());
bufOut.write(SPLIT_STRING);
}
bufOut.write("\r\n");
}
bufOut.close();
ow.close();
}
}
⑥ java系統怎麼設置號碼歸屬地
packagetest;
importjava.io.InputStream;
importjava.io.OutputStream;
importjava.io.OutputStreamWriter;
importjava.net.URL;
importjava.net.URLConnection;
importjavax.xml.parsers.DocumentBuilder;
importjavax.xml.parsers.DocumentBuilderFactory;
importorg.w3c.dom.NodeList;
publicclassMobile{
(StringmobileCode){
StringBuildersb=newStringBuilder();
sb.append("<?xmlversion="1.0"encoding="utf-8"?>"
+" "
+"<soap:Envelopexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance""
+""
+"xmlns:xsd="http://www.w3.org/2001/XMLSchema""
+""
+"xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">"
+" "
+"<soap:Body>"+" "
+"<getMobileCodeInfo"+""
+"xmlns="http://WebXml.com.cn/">"+" "
+"<mobileCode>"+mobileCode+"</mobileCode>"+" "
+"<userID></userID>"+" "
+"</getMobileCodeInfo>"+" "
+"</soap:Body>"+" "
+"</soap:Envelope>"
);
returnsb.toString();
}
(StringmobileCode){
try{
Stringsoap=getSoapRequest(mobileCode);
if(soap==null)
returnnull;
URLurl=newURL(
"http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx");
URLConnectionconn=url.openConnection();
conn.setUseCaches(false);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type","text/xml;charset=utf-8");
conn.setRequestProperty("Content-Length",Integer.toString(soap
.length()));
conn.setRequestProperty("SOAPAction",
"http://WebXml.com.cn/getMobileCodeInfo");
OutputStreamos=conn.getOutputStream();
OutputStreamWriterosw=newOutputStreamWriter(os,"UTF-8");
osw.write(soap);
osw.flush();
osw.close();
InputStreamis=conn.getInputStream();
returnis;
}catch(Exceptione){
e.printStackTrace();
returnnull;
}
}
(StringmobileCode){
try{
org.w3c.dom.Documentdocument=null;
DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
InputStreamis=getSoapInputStream(mobileCode);
DocumentBuilderdb=dbf.newDocumentBuilder();
document=db.parse(is);
NodeListnl=document
.getElementsByTagName("getMobileCodeInfoResult");
StringBuffersb=newStringBuffer();
for(inti=0;i<nl.getLength();i++){
org.w3c.dom.Noden=nl.item(i);
if(n.getFirstChild().getNodeValue().equals("手機號碼錯誤")){
sb=newStringBuffer("#");
System.out.println("手機號碼輸入有誤");
break;
}
sb.append(n.getFirstChild().getNodeValue()+" ");
}
is.close();
returnsb.toString();
}catch(Exceptione){
e.printStackTrace();
returnnull;
}
}
publicstaticvoidmain(String[]args){
//System.out.println(Moblie.getSoapRequest("13272303204"));
//System.out.println(Moblie.getSoapInputStream("13226678785"));
System.out.println(Mobile.getMobileNoTrack("1583759999"));
}
}
這段代碼也是我在網上找的,然後在Myeclipse8.5M2中測試通過的;根據輸入的電話號碼,可以查詢號碼歸屬地.不知道是否你需要的答案...
⑦ JavaWeb:後台判斷是手機登陸還是Pc登陸
兩種方式:第一種用在頁面,第二種用java過濾器
頁面用jq判斷,單獨建立一個js文件,哪個頁面使用,就引入哪個頁面,一般為首頁。引用時,記得先引用jquery
$(function() {
var tag = isMobile(); // true為PC端,false為手機端
if (tag) {
alert("手機");
console.info("手機")
}
});
function isMobile() {
var userAgentInfo = navigator.userAgent;
var mobileAgents = [ "Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod" ];
var mobile_flag = false;
// 根據userAgent判斷是否是手機
for (var v = 0; v < mobileAgents.length; v++) {
if (userAgentInfo.indexOf(mobileAgents[v]) > 0) {
console.info("chenk userAgent")
mobile_flag = true;
break;
}
}
var screen_width = window.screen.width;
var screen_height = window.screen.height;
// 根據屏幕解析度判斷是否是手機
if (screen_width < 500 && screen_height < 800) {
console.info("check screen")
mobile_flag = true;
}
return mobile_flag;
}
過濾器方式:filter
public class IsMobile implements Filter {
/**
* Default constructor.
*/
public boolean IsMobileCheck(ServletRequest sRequest) {
HttpServletRequest request = (HttpServletRequest)sRequest;
boolean isMoblie = false;
String[] mobileAgents = { "iphone", "android", "phone", "mobile",
"wap", "netfront", "java", "opera mobi", "opera mini", "ucweb",
"windows ce", "symbian", "series", "webos", "sony",
"blackberry", "dopod", "nokia", "samsung", "palmsource", "xda",
"pieplus", "meizu", "midp", "cldc", "motorola", "foma",
"docomo", "up.browser", "up.link", "blazer", "helio", "hosin",
"huawei", "novarra", "coolpad", "webos", "techfaith",
"palmsource", "alcatel", "amoi", "ktouch", "nexian",
"ericsson", "philips", "sagem", "wellcom", "bunjalloo", "maui",
"smartphone", "iemobile", "spice", "bird", "zte-", "longcos",
"pantech", "gionee", "portalmmm", "jig browser", "hiptop",
"benq", "haier", "^lct", "320x320", "240x320", "176x220",
"w3c ", "acs-", "alav", "alca", "amoi", "audi", "avan", "benq",
"bird", "blac", "blaz", "brew", "cell", "cldc", "cmd-", "dang",
"doco", "eric", "hipt", "inno", "ipaq", "java", "jigs", "kddi",
"keji", "leno", "lg-c", "lg-d", "lg-g", "lge-", "maui", "maxo",
"midp", "mits", "mmef", "mobi", "mot-", "moto", "mwbp", "nec-",
"newt", "noki", "oper", "palm", "pana", "pant", "phil", "play",
"port", "prox", "qwap", "sage", "sams", "sany", "sch-", "sec-",
"send", "seri", "sgh-", "shar", "sie-", "siem", "smal", "smar",
"sony", "sph-", "symb", "t-mo", "teli", "tim-", "tosh", "tsm-",
"upg1", "upsi", "vk-v", "voda", "wap-", "wapa", "wapi", "wapp",
"wapr", "webc", "winw", "winw", "xda", "xda-",
"Googlebot-Mobile" };
if (request.getHeader("User-Agent") != null) {
for (String mobileAgent : mobileAgents) {
if (request.getHeader("User-Agent").toLowerCase()
.indexOf(mobileAgent) >= 0) {
isMoblie = true;
break;
}
}
}
return isMoblie;
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest sRequest, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("手機檢查");
HttpServletRequest request = (HttpServletRequest)sRequest;
if (IsMobileCheck(request)) {
((HttpServletResponse)response).sendRedirect(request.getContextPath() + "/wap/index.jsp");
return;
} else {
}
chain.doFilter(request, response);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
⑧ 如何用java編程,實現聲音特徵的提取
您好,1 雙方之間的網路連接
Java在這方面有其獨特的優勢,Java提供了豐富的網路類庫的支持,可以輕松編寫多種類型的網路通信程序。在我下面的例子中我就使用了TCP/IP協議,通過Java的Socket類進行編程。
2 音頻信號的採集和回放以及音頻數字信號的編碼與解碼
在解決這兩個問題的時候,在網上很幸運地通過一些文章的介紹,找到了Answer Machine 演示程序的源代碼(由of jsresources.org的Florian Bomers 和Matthias Pfisterer編寫,網址http://www.jsresources.org/apps/am.html)。在這個程序代碼中,有幾個解決我們問題所需要的類,而且作者將這些類封裝的很好,我們基本不需要做什麼改動,只需要屏蔽其中的調試信息的輸出就行了,更可貴的是它還封裝了幾種常見的音頻格式。其中的GSM格式(Global System for Mobile Telecommunications)就是我們下面例子中採用的壓縮格式,GSM格式可以將128kbps 的音頻數據流 (16bit通過8k Hz的音頻采樣) 壓縮為13kbps 的音頻數據流,非常適合語音信號的傳送,所以可謂是一石二鳥。
我分析過這幾個類的源代碼,不得不佩服它的作者,每個類的源代碼都很精煉,大家可以自己分析一下。好了下面就給大家講講這幾個類,並且將它們用到的Java Sound API中的類和函數等一並做個簡單介紹,讓大家對Java Sound API中常用的類也有個大致的了解。由於Java Sound API中的類比較多。限於篇幅無法對所有用到的類做詳盡的解釋,以下內容只是簡單提及了各個類的用途和使用規范,有關Java Sound API中類的具體介紹請大家訪問這里http://java.sun.com/j2se/1.4.2/docs/api/, 查找javax.sound.sampled的相關內容。
以下的提到幾個文件是從Answer Machine 演示程序的源代碼中提取出來的,由於是開放源代碼的程序,大家在使用的時候請注意相關的公共協議。
① AMAudioFormat類(封裝在AMAudioFormat.java文件中)
AMAudioFormat類封裝了CD、FM、TELEPHONE、GSM這四種質量的音頻格式的參數,使用起來也非常簡單,這樣我們在使用Java Sound API時就不用自己去寫那些復雜的代碼了,但為了明白Java Sound API的原理,我們需要對它的代碼做一下分析。它使用了Java Sound API中的AudioFormat這個類,這個類非常重要,在Java中對任何音頻數據的使用都要實現通過它指定所需要使用的音頻格式,AudioFormat類有一個嵌套的類AudioFormat.Encoding,實際上大部分對AudioFormat類的使用都是使用的這個嵌套的類。
AMAudioFormat類的重要方法:
名稱:getLineAudioFormat
調用格式:getLineAudioFormat(整型音頻格式代號)
返回值: 根據傳遞音頻格式代號生成的AudioFormat對象。
說道這里大家可能要問了,那麼通過Java Sound API可以直接使用GSM格式嗎?答案是比較復雜,但同樣有解決的辦法,作者在這里使用了另外的開源程序的類庫-tritonus的GSM編碼解碼庫。大家需要在這里www.tritonus.org/plugins.html下載tritonous_share.jar和tritonus_gsm.jar兩個文件,並在AMAudioFormat類中引用,這樣就完成了GSM格式的設置。需要告訴大家的是在對AMAudioFormat.java這個類進行編譯後,我們的程序運行的時候就可以不需要tritonous_share.jar和tritonus_gsm.jar這兩個文件的支持了。
② AudioCapture類(封裝在AudioCapture.java文件中)
AudioCapture類封裝了從音頻硬體捕獲音頻數據並自動編碼為GSM音頻壓縮數據的過程,並且通過它的getAudioInputStream()方法提供給我們一個音頻數據輸入流,我們就可以直接將這個流發送到網路中。
AudioCapture 類的重要方法:
名稱:getAudioInputStream
調用格式:getAudioInputStream()
返回值:AudioInputStream對象
AudioCapture 類使用了Java Sound API中的AudioInputStream、AudioFormat、AudioSystem這幾個類和TargetDataLine、LineListener介面。除了AudioFormat類我再簡單介紹一下其他的類:
AudioInputStream 類是帶有特殊音頻格式和長度的InputStream類,它有兩個構造方法,分別是AudioInputStream(InputStream stream, AudioFormat format,long length)和AudioInputStream(TargetData -Line line)。
TargetDataLine 介面是DataLine介面的一種,通過它就可以直接從音頻硬體獲取數據了,它有幾個常用的方法,分別是:open(AudioFormat format)、void open(AudioFormat format, int bufferSize)、int read(byte[] b, int off, int len)。
AudioSystem 類是Java標准音頻系統的入口點,在AudioSystem 類中使用他的getLine() 方法創建TargetDataLine對象。
LineListener介面用來對線路狀態改變的時間進行監聽,他的重要的方法是update(LineEvent event)方法。
③ AudioPlayStream類(封裝在AudioPlayStream.java文件中)
AudioPlayStream類與AudioCapture類剛好相反,它封裝了GSM壓縮音頻數據的解碼和音頻信號的回放過程,提供給我們一個音頻信號輸出流。AudioCapture類用到的Java Sound API中的類它也基本都用到了,只是它使用了SourceDataLine介面而不是TargetDataLine介面
④ Debug類(封裝在Debug.java文件中)
Debug類主要用來在調試時輸出訊息,代碼很少,後來我把其中輸出信息的語句都屏蔽了,對程序運行沒有影響。
為了方便使用以上的幾個類,我們需要對它們進行編譯和打包,編譯時需要設置相關的編譯環境,以下是我們需要用到的命令行
set CLASSPATH=%CLASSPATH%;.;tritonus_gsm.jar;tritonus_share.jar
javac am*.java amaudio*.java
jar cmf packagingmanifest.mf am.jar am*.class
amaudio*.class
說明一下,我將以上提到的Java源碼文件放在了am目錄下,編譯之後可以得到一個8k的am.jar文件,我們下一步所需要做的就是在我們的程序中引用這個包。
⑨ 游戲是通過什麼製作出來的
在製作游戲之前,必須有一套經過長期測試並且適用的游戲引擎。
數位紅用了兩年的時間總結開發出一套基於移動設備的游戲引擎:dragon bone game engine for mobile phone(龍骨),他可以支持目前大部分的高端移動設備,它不僅可以使程序開發人員及游戲項目節省了大量的時間,另外還可以讓美術人員最直觀的看到其設計效果。它最大的價值就是可以使開發人員的一套代碼在不需要改動程序的情況下編譯運行在不同設備平台上(改動不超過20%)。目前數位紅及其他公司已經使用它開發游戲超過了30款。
引擎提供了非常完善的9個模塊與3個增強模塊,可以完全滿足各類游戲開發的需要。游戲引擎可以直接嵌入到開發者的程序中,不需要額外的支持程序即可使所開發的游戲獨立運行。游戲引擎簡單、易用,編譯後體積很小,佔用內存也很小,可以節省玩家的內存空間及無線下載費用。基本引擎包含9個模塊,引擎函數界面提供了類似windows的使用模式:
1、 文件操作模塊:提供類似標准c的fopen,fclose等函數。
2、 內存管理模塊
3、 2d圖形圖象模塊
4、 對話框模塊
5、 sms操作模塊:可以在程序內部對sms的收發進行截獲處理。
6、 加密模塊:提供識別使用設備的imei功能,用於軟體的加密目的。
7、 聲音模塊
8、 資源打包及壓縮模塊:可是使最後發售的軟體包體積變小,盡量少的佔用用戶的內存空間。
9、 常用函數:如字元串操作等函數。
10、例子:提供一套完整游戲magicline的源程序。 引擎增強模塊構成 其增強部分,包含三個模塊: 1、 實時3d增強模塊 2、 聲音增強模塊 3、 圖形文件增強模塊
ii. 正式開發的前期工作 a. 開發工具的准備 在很多人看來,手機游戲還是一種很新鮮時尚的玩意兒,所以,談起手機游戲的時候難免有種莫測高深的感覺。其實,手機游戲的整個製作過程十分簡單。從某種角度而言,它是一種傳統的回歸,同時也是新舊技術的相互融合。最常用的開發工具有vc++,j builder及codewarrior,在設計工具上則更是和普通的pc游戲製作軟體沒有大的區別。有的設計人員更願意使用「骨灰級」的二維設計工具dp,也有人願意用3dmax、maya建模之後再進行二維修改,當然所有這些方法都要根據游戲的最終設定來決定。我們在做java游戲的時,一般都是採用像素級的二維繪制完成圖片,即逐個像素點的完成。但在製作pda等類似設備的游戲時,就會採用3dmax或者maya建立模型,渲染後再修整。在設計過程中,我們也與大多數游戲公司一樣使用了maya、3dmax、photoshop、painter等工具。 b. 確定游戲的各項參數及目標設備