Кто-нибудь знает, почему я всегда получаю параметр date_sent как «0», вместо правильной информации при отправке сообщения? (Я получаю 0 для отправленных или полученных сообщений, но, насколько я помню, у обоих, отправленных и полученных, есть отдельное время в приложении для акций, так что, безусловно, доступна эта информация, просто не понимаю, почему я не могу получить это запрос «date_sent» ... Он предлагается на многих сайтах, но всегда возвращает ноль.SMS-сообщения date_sent на Android с Delphi XE5 всегда возвращают 0?
Есть ли более новая информация о доступе к android api? Я нашел несколько информации, но все довольно старые и говорит, что обмен сообщениями не документировано никогда ничего не изменилось с тех пор ли это https://stackoverflow.com/a/6446831/1786516 все, что есть о мм, или есть Дельфи xe5 пример уже сделал
UPDATE:.?
Вот пример происхождения код для чтения SMS-сообщения в Delphi xe5, как это предусмотрено на нескольких страницах:
uses
SysUtils,
FMX.Helpers.Android,
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.Net,
Androidapi.JNI.JavaTypes,
Androidapi.JNI.Telephony;
function ReadSMSInbox:string;
var
cursor: JCursor;
uri: Jnet_Uri;
address,person,msgdatesent,protocol,msgread,msgstatus,msgtype,
msgreplypathpresent,subject,body,
servicecenter,locked:string;
msgunixtimestampms:int64;
begin
uri:=StrToJURI('content://sms/inbox');
cursor := SharedActivity.getContentResolver.query(uri, nil, nil,nil,nil);
while (cursor.moveToNext) do begin
address:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('address'))));
person:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('person'))));
msgunixtimestampms:=cursor.getLong(cursor.getColumnIndex(StringToJstring('date')));
msgdatesent:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('date_sent'))));
protocol:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('protocol'))));
msgread:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('read'))));
msgstatus:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('status'))));
msgtype:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('type'))));
msgreplypathpresent:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('reply_path_present'))));
subject:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('subject'))));
body:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('body'))));
servicecenter:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('service_center'))));
locked:=JStringToString(cursor.getString(cursor.getColumnIndex(StringToJstring('locked'))));
Result:=IntToStr(trunc(msgunixtimestampms/1000))+' '+address+' '+body; //+whatever you want to add here;
StringList1.Add(Result); //Add the result in stringlist to collect all of them
end;
end;
Существует абсолютно тот же код для чтения Исходящие (Sent) SMS-сообщений, за исключением того, что имя функции ReadSMSOutbox
, и строка uri равна uri:=StrToJURI('content://sms/sent');
См. ответ на измененный/оптимизированный код и решение о исправленных запросах date_sent.
Вы абсолютно не указали код, поэтому нам невозможно рассказать вам, почему вы получаете результаты, которые получаете. Ожидаете ли вы, что мы читаем ваш ум или видим ваш экран, где мы находимся? –
Нет, но я, однако, ожидаю, что получу только ответы и ответы от людей, которые уже знают, о чем я говорю, и что такое код. Потому что я верю, что из моего вопроса есть клерикально сказано, что я знаю, что я делаю (для этого конкретного случая, иначе я просто полный новичок, это точно !!), и что это не проблема в моей или какой-либо конкретный код, но в самих значениях. У меня нет ошибок чтения, параметр «date_sent» существует в базе данных Android, я получаю значение, но он всегда равен 0, а это значит, что сам андроид заполняет базу данных –
значением по умолчанию, равным 0. Итак, еще раз, я не думаю, что код здесь является необязательным, поскольку он был опубликован много раз по всему, и я никогда не намерен делать только один дубликат и получать ответ «вы делаете это правильно. Если это то, что вы получаете, то это то, что есть в базе данных. Никакой помощи. " Я уже знаю, что. Мой вопрос: ПОЧЕМУ это происходит, и КАК получить правильные значения, которые явно НЕ относятся к параметру date_sent, поэтому вопрос был также (как мой второй параграф), есть ли какие-либо ДРУГИЕ запросы, которые известны, и есть ли в наличии новый документ –