① 手机上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. 确定游戏的各项参数及目标设备