我的应用程序使用BroadcastReceiver以这种方式获取短信:
SmsBR.java
public class SmsBR extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[])bundle.get("pdus");
final SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
}
if (messages.length > 0)
//doSomething();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
的Manifest.xml
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Activity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".SmsBR">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
</intent-filter> …Run Code Online (Sandbox Code Playgroud) 哪种是通过javascript播放mp3(非常短)文件的最佳和跨浏览器方式?我试过不同的方法,但总是有问题......
编辑1:
我不需要一个"完整"的播放器,我只需要一个功能,而不是每当有事情发生时我都可以调用
编辑2:
好的,我要更好地解释我的问题.服务器是连接在局域网中的智能手机,但并不总是连接到互联网.我想使用mp3,因为文件重量只有3kb(而不是60kb的wav),但如果播放此文件的机制太"重"(播放器或jquery.js),我认为最好使用wav文件.其他建议?
我需要从服务中获取对主Activity的引用.
这是我的设计:
MainActivity.java
public class MainActivity extends Activity{
private Intent myIntent;
onCreate(){
myIntent=new Intent(MainActivity.this, MyService.class);
btnStart.setOnClickListener(new OnClickListener(){
public void onClick(View V){
startService(myIntent);
});
}}
Run Code Online (Sandbox Code Playgroud)
MyService.java
class MyService extends Service{
public IBinder onBind(Intent intent) {
return null;
}
onCreate(){
//Here I need to have a MainActivity reference
//to pass it to another object
}
}
Run Code Online (Sandbox Code Playgroud)
我能怎么做?
[编辑]
感谢大家的答案!这个应用程序是一个Web服务器,此时只适用于线程,我想使用服务,使其在后台工作.问题是我有一个负责从资产获取页面的类,要执行此操作,我需要使用此方法:
InputStream iS =myActivity.getAssets().open("www/"+filename);
Run Code Online (Sandbox Code Playgroud)
此时我的项目只有一个Activity而没有服务,所以我可以直接从它自己传递main活动的引用:
WebServer ws= new DroidWebServer(8080,this);
Run Code Online (Sandbox Code Playgroud)
因此,为了使这个应用程序与服务一起使用,我应该在设计中改变什么?
我有一个serverSocket,我想知道IP地址,但有
listenSocket.getInetAddress().toString();
Run Code Online (Sandbox Code Playgroud)
我得到0.0.0.0.如何获取IP地址,或者(如果启用了两个连接)其中一个?
我需要使用rawQuery()方法存储记录,因为我想插入当前的日期和时间(datetime()),但我还需要插入包含引号的字符串.
所以我写了这段代码:
String sql="INSERT INTO sms VALUES ( null, ?1, ?2, ?3, datetime())";
dbw.rawQuery(sql, new String[]{str1,str2,str3});
Run Code Online (Sandbox Code Playgroud)
但它没有存储任何东西......出了什么问题?
[编辑]
这样我就不会出错,但是没有插入记录.
String mitt="mitt", dest="dest", text="text";
String sql="INSERT INTO sms VALUES ( null, ?, ?, ?, datetime('NOW'))";
dbw.rawQuery(sql, new String[]{mitt,dest,text});
Run Code Online (Sandbox Code Playgroud)
此时,唯一可以插入记录的方法(带引号问题)是execSQL(String s).
我想创建一个类似于confirm()显示对话框(带有问题和2个按钮的div)的JavaScript函数,true如果用户单击"确定"或false其他,则返回.
是否可以使用JavaScript/jQuery但没有插件(例如jQuery UI或Dialog)?因为我正在努力减少尺寸和往返时间......
我试着编写这段代码,但我不知道如何让用户点击这个函数"等待".
我想以这种方式使用我的函数:
answer=myConfirm("Are you sure?")
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我可以在几个上下文中使用相同的函数,只需更改作为参数传递的问题.这与confirm()的行为相同
当我收到短信时,我需要将短信存储到sqlite数据库中.此时它与短信(160个字符)一起正常工作,但如果我收到一个多部分短信,它会将短信截断为大约155个字符.
这是我的代码:
SmsBR.java
public class SmsBR extends BroadcastReceiver {
private DBManager dbm;
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[])bundle.get("pdus");
final SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
}
if (messages.length > 0) {
dbm=DBManager.getDBM(null);
dbm.insertSMS(messages[0]);
}}}}
Run Code Online (Sandbox Code Playgroud)
DBManager是我编写的单例类,用于简化读/写操作,我确信它对长文本没有问题!
我的应用程序的结构与此类似:
class Father{
a(){ ... }
b(){a();}
}
class Son extends Father{
a(){ ..... }} //override
Run Code Online (Sandbox Code Playgroud)
b()没有被覆盖.当我创建Son的一个实例并且我调用b()时,父的a()被调用,但我希望它执行Son一个(如果对象是Son).可能吗?
我正在编写一个使用SmsManager发送短信的应用程序.如何获得有关此操作成功的信息?是否有"sms发送"事件的BroadcastReceiver?
谢谢你的建议
android ×6
javascript ×2
sms ×2
sqlite ×2
callback ×1
confirm ×1
dialog ×1
extends ×1
ip-address ×1
java ×1
jquery ×1
mp3 ×1
multipart ×1
overriding ×1
sockets ×1
subclass ×1
superclass ×1