forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   отправить смс на короткий номер 10625 (http://forum.boolean.name/showthread.php?t=914)

Piligrim 22.10.2006 01:13

Re: отправить смс на короткий номер 10625
 
Permissions для того и пишутся чтобы телефон знал, что мидлет хочет СМС отправлять. Но вообще-то по умному он должен спросить если нет разрешения.
Бибилотека и так написана по принципу "отправляй что хочешь". Дело в том что по стандарту номер должен быть в международном формате, видимо здесь ява машина мудрит.

Chip 22.10.2006 01:54

Re: отправить смс на короткий номер 10625
 
Цитата:

Сообщение от pilgrim
Permissions для того и пишутся чтобы телефон знал, что мидлет хочет СМС отправлять. Но вообще-то по умному он должен спросить если нет разрешения.
Бибилотека и так написана по принципу "отправляй что хочешь". Дело в том что по стандарту номер должен быть в международном формате, видимо здесь ява машина мудрит.

Дело в том что он пытается предложить отправить СМС, но так быстро вылетает что даже неуспеваешь согласится. Пробовал на другом телефоне так там просто слетает и даже ни чего не предлагает. А через стандартные средства на voxtel 3iD все работает , а с твоим классом нет. А может у SE свои классы для работы с СМС?
Декомпилировал классы твой и стандартный для сравнения , заметил что у тебя порт не пишется
"destination = s + ":276"; " это из стандартного класса строка выдернута.
Писал вот так:
if sms.send('sms://1010','Всем привет') <> 1 then halt;
while is_sending = 1 do delay(100);
if Successfull = 0 then halt;

Piligrim 22.10.2006 10:04

Re: отправить смс на короткий номер 10625
 
порт убран, т.к. у человека, для которого это писалось не отправлялись смс, его оператор этот порт не обслуживал.
можно обложить отправку try{}catch и посмотреть почему вылетает.
на моей мотороле он просто не отправляет, без вылета из программы.

Chip 22.10.2006 14:04

Re: отправить смс на короткий номер 10625
 
Все равно не пашет .

Chip 22.10.2006 15:14

Re: отправить смс на короткий номер 10625
 
Pilgrim помоги сделать класс SMS полностью идентичным стандартному, мне нужно избавится от строки: MIDlet-Permissions: javax.wireless.messaging.sms.send в файле MANIFEST.MF , все из-за нее , если я ее удаляю тел запускается без проблем.
Для редактирования выкладываю тебе класс :

import javax.microedition.io.*;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.TextMessage;

class Lib_sms implements Runnable {
public static boolean isSending = false;
public static int success = 0;
private String destination;
private String message;
public static int send(String s, String s1)
{
if(isSending)
{
return 0;
} else
{
new Lib_sms(s, s1);
return -1;
}
}

public Lib_sms(String s, String s1)
{
success = 0;
isSending = true;
destination = s + ":276";
message = s1;
try
{
Thread thread = new Thread(this);
thread.start();
}
catch(Exception exception) {
isSending = false;
}
}

public void run()
{
try
{
MessageConnection messageconnection = (MessageConnection)Connector.open(destination);
TextMessage textmessage = (TextMessage)messageconnection.newMessage("text");
textmessage.setAddress(destination);
textmessage.setPayloadText(message);
messageconnection.send(textmessage);
messageconnection.close();
isSending = false;
success = -1;
return;
} catch(Throwable throwable) { }
try
{
DatagramConnection datagramconnection = (DatagramConnection)Connector.open(destination);
Datagram datagram = datagramconnection.newDatagram(message.getBytes(), message.getBytes().length, destination);
datagramconnection.send(datagram);
datagramconnection.close();
isSending = false;
success = -1;
}
catch(Throwable throwable1)
{
isSending = false;
success = 0;
return;
}
isSending = false;
success = -1;
}

public static int IS()
{
return !isSending ? 0 : -1;
}

public static int GS()
{
return success;
}
}


Часовой пояс GMT +4, время: 08:08.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot