Android can save maximum 500 call logs. Is there any way to make that unlimited?
If not, i need to backup call logs, and call durations. For example, incoming call from Jack, 5:12 minutes.
Do you know any applications for that please?
Any suggestions?
The only solution i can figure is to backup them regularily with mybackup or titanium backup, and then rename the backup file according to day. I hope you can get better answers to this question.
Sent from my Derp using XDA Herp
Did you tried querying raw database?
After googled, I found that call log are stored in 'calls' table of /data/data/com.android.providers.contacts/databases/contacts2.db database.
My call log does not reach 500 yet, so I don't know if android will deleted call logs to remain last 500 call logs or stored all call logs but just display last 500 entries. You can check your database to see if all the call logs are still there.
Mine is like the following:
Code:
# Open the database
sh-4.2# sqlite /data/data/com.android.providers.contacts/databases/contacts2.db
<om.android.providers.contacts/databases/contacts2.db
SQLite version 3.7.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
# Let the select query display column name too
sqlite> .headers on
.headers on
# Show total call log count, mine is 145, does not reach 500 yet
sqlite> select count(*) from calls;
select count(*) from calls;
count(*)
145
# Show earlies 10 call log entries (oops, I changed call party name for privacy issue)
sqlite> select * from calls limit 0,10;
select * from calls limit 0,10;
_id|number|date|duration|type|new|name|numbertype|numberlabel|cnapname|subscription
1|666181|1323919838318|187|1|1||0|||
2|61399|1324002864088|34|2|1|==private name==|3|||
3|658|1324004055519|63|1|1||0|||
4|658|1324004452603|52|1|1||0|||
5|10086|1324146188029|19|2|1|中国移动客服热线|7|||
6|25979542|1324182193631|0|2|1|笋岗 鲜粉人家|7|||
7|25979542|1324182235209|36|2|1|笋岗 鲜粉人家|7|||
8|25979542|1324211109332|34|2|1|笋岗 鲜粉人家|7|||
9|02995500|1324262414446|69|1|1||0|||
10|10086|1324554661852|25|2|1|中国移动客服热线|7|||
sqlite> .exit
.exit
sh-4.2#
Before querying raw database like that, you need
1. rooted
2. copy the 'sqlite3' command line tool from Android SDK emulator
3. install a terminal application, or use 'adb shell' to run those commands
==update==
hmm, I did a test in Android SDK Emulator, inserted 600 call logs into 'calls' table, and dialer can show these 600 call logs.
Code:
for ((i=101; i<=700; i++)); do sqlite3 /data/data/com.android.providers.contacts/databases/contacts2.db "insert into calls(number,date,duration,type,new,name,numbertype,numberlabel) values('$i',1323919838$i,$RANDOM%300,2,0,'name $i',1,'')"; done
lovetide said:
Did you tried querying raw database?
After googled, I found that call log are stored in 'calls' table of /data/data/com.android.providers.contacts.contacts2.db database.
My call log does not reach 500 yet, so I don't know if android will deleted call logs to remain last 500 call logs or stored all call logs but just display last 500 entries. You can check your database to see if all the call logs are still there.
Mine is like the following:
Code:
# Open the database
sh-4.2# sqlite /data/data/com.android.providers.contacts/databases/contacts2.db
<om.android.providers.contacts/databases/contacts2.db
SQLite version 3.7.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
# Let the select query display column name too
sqlite> .headers on
.headers on
# Show total call log count, mine is 145, does not reach 500 yet
sqlite> select count(*) from calls;
select count(*) from calls;
count(*)
145
# Show earlies 10 call log entries (oops, I changed call party name for privacy issue)
sqlite> select * from calls limit 0,10;
select * from calls limit 0,10;
_id|number|date|duration|type|new|name|numbertype|numberlabel|cnapname|subscription
1|666181|1323919838318|187|1|1||0|||
2|61399|1324002864088|34|2|1|==private name==|3|||
3|658|1324004055519|63|1|1||0|||
4|658|1324004452603|52|1|1||0|||
5|10086|1324146188029|19|2|1|中国移动客服热线|7|||
6|25979542|1324182193631|0|2|1|笋岗 鲜粉人家|7|||
7|25979542|1324182235209|36|2|1|笋岗 鲜粉人家|7|||
8|25979542|1324211109332|34|2|1|笋岗 鲜粉人家|7|||
9|02995500|1324262414446|69|1|1||0|||
10|10086|1324554661852|25|2|1|中国移动客服热线|7|||
sqlite> .exit
.exit
sh-4.2#
Before querying raw database like that, you need
1. rooted
2. copy the 'sqlite3' command line tool from Android SDK emulator
3. install a terminal application, or use 'adb shell' to run those commands
==update==
hmm, I did a test in Android SDK Emulator, inserted 600 call logs into 'calls' table, and dialer can show these 600 call logs.
Code:
for ((i=101; i<=700; i++)); do sqlite3 /data/data/com.android.providers.contacts/databases/contacts2.db "insert into calls(number,date,duration,type,new,name,numbertype,numberlabel) values('$i',1323919838$i,$RANDOM%300,2,0,'name $i',1,'')"; done
Click to expand...
Click to collapse
So sohuld i cpy that file everyday?
I found an application, call logs backu&restore
This has two optiopns, one is adding everyday's calls to same file, other is for everyday, creating a file. First one seems sensible but i ddi not like that thing. It keeps adding everyday, i think new calls but it is hard to view it in web browser.
SMS Backup+ can backup call logs with durations to any gmail account with "Call log" stamp. So, you can see all of your call logs from your gmail account with durations and calling times. If you want you can restore your logs to phone. It also supports automatic backup.
Cursed Chico said:
So sohuld i cpy that file everyday?
I found an application, call logs backu&restore
This has two optiopns, one is adding everyday's calls to same file, other is for everyday, creating a file. First one seems sensible but i ddi not like that thing. It keeps adding everyday, i think new calls but it is hard to view it in web browser.
Click to expand...
Click to collapse
If manually backup, I'm afraid you should do that everyday.
Huawei AllBackup application has a "schedule backup" option, but maybe it does not fit your requirement, because:
1. AllBackup schedule backup created a new file for each backup. (/sdcard/HuaweiBackup/timer/Schedule_2012_02_22.zip for example)
2. The frequency option only provide Weekly and Monthly, not Daily.
I can suggest this app from the market: CallTrack by asterdroid mobile.
You can upload you current call log to your google calendar. All information are uploaded to it (even though i suggest you to creat a "call log" calendare specifically for this purpose).
sqlite db can have more than 500 calls. I just tested my own sql to get all the calls from past nandroid backups, put them into one sql script and then insert into call history. Went completely smooth.
Only thing I have to figure out onw is to how to update the numbers with contact-links to have names. But it should be easy too.
[edit]
Yeah, it was super-easy - backup all contacts (vCard), delete all contacts, restore all contacts - after this sequence, whole call log was updated for me.
[edit]
Although, I confirm my calls databases has all 500 calls max, but as I did nandroid backups rather often, I can concat all, unique them and then I have all my calls now.
I can try to see when/where database is cutted to at most 500 calls, but it may be hidden in java code, not in triggers, so I probably find nothing then, but I'm thinking about options, and surely with root there is a way to write some soft (easy one) to constantly "update" call log, when truncated.
Will be done for sure, as I need it, heheh
Related
thanks all for their help and wisdom
two teaks which i'm lookingsorry my search string didnt work for these questions)
how do you set filter in call history? it's set to all calls by default; can we change this default value (to miss calls or outgoing etc); also, why call history shows same number repeatedly (say you try to call 1 number 10 times, it shows you 10 times same number in history istead showing 1 time; it's pretty dumb as compare to other basic fone whr they only show 1 entry)
Other:
all contacts on phone; none on sim: how to take backup of only these contacts (pardon my ignorance; but i couldnt find way in outlook which is default for address book and contacts thru active sync); is there any 3rd party util especially designed to keep contacts saved in original format? (means 3 number/entry; 200 entry and that util keep exact copy and produce duplicate on restoring)?
thanks all to everyone
I just wondering is there any application that specifically created for using a calling card?
I imagine an application like this:
- Add a new calling card entry
- Set the calling card phone number
- Set the destination phone number
- Set wait (in seconds) to enter the destination phone number
Then, it works like an address book (contact list).
When you choose an entry, press "call", it will:
- Dial the calling card phone number
- Wait (in seconds)
- Automatically entered the destination phone number
Good eh?
Normally, after dialed the calling card phone number, we need to manually press the destination phone number manually.
I believe a lot of people are using calling card to dial overseas number, so this must be a good application!
You can create the above procedures with ',' (comma) on your phone number. Eg
- phone card tel: 1111111
- destination number: 222222
you will put in the phone number as 111111,22222
if it is too fast, just add more ',' to it.
try putting the letter p in between the numbers. more the no of p's more pause.
thats a nice solution, but add this to every international contact I have? I don't think so....
MagiCall can do it. Just set up an outgoing rule like this:
Rule type: Phone-Outbound
Filter type: Specific number
Phone#: +*
Action1: Change number
Call to: <calling card number>,,,,,<calling card pin>,,,,00{phone}[-1,0]#
The rule will filter outging numbers which have a leading + and change them into the international format.
You can read its user guide for detail information.
http://www.mobiion.com/magicall.html
My goal is this: I have an external database with (company-) contacts as a SQLCE database. Since there are over 1000+ contacts in that database, I don't like the idea to 'load' all of them in my outlook. So when there's an incoming call I check if it is an outlook contact, if not I like to search the external database (by phone number) and create a contact 'on the fly' (NOT to be stored in poutlook!)
I 'detect' a new incoming call like this:
private SystemState _phoneIncomingCall = new SystemState(SystemProperty.PhoneIncomingCall);
_phoneIncomingCall.Changed += OnPhoneIncomingCallChanged;
This works like a charm. In the OnPhoneIncomingCallChanged method I check if the (new SystemState(SystemProperty.PhoneIncomingCallerContact)).CurrentValue is null. This too is working Now I would like to 'alter' the PhoneIncomingCallerContact with a contact I lookup in the other database using the incoming number. I imagine I should create a new contact and 'rethrow' the PhoneIncomingCallerContact.
The "OnPhoneIncomingCallerContact" function in the dialer should be triggered and the 'altered' contact information displayed.
Key question: can I create a SystemState(SystemProperty.PhoneIncomingCallerContact) "State and Notifications Broker" message?
And off course if so: how to do it in C#?
Another approach might be to 'unhook' the default phone application, get the incoming call and 'hook' the phone application back when I decide to take the call or reject the call?
Again: Is it possible and how to do it in C#?
Your help is appreciated...
Answered @ Windows Mobile Developer Center
If anyone cares
lextendo said:
Answered @ Windows Mobile Developer Center
If anyone cares
Click to expand...
Click to collapse
Thanks for sharing.
I'm working on a location based app that would request the phone to send its GPS location. My question is, what are the available methods for requesting the location from the device? My first choice was HTTPD but the device IP is unreachable from the world (sprint). My second choice is SMS and have the phone intercept the messages. If it sees a location request SMS then it would respond to a web service with its current location.
Is this a reliable method?
chris
Looks like MS My Phone uses SMS to request phone data... interesting.
Location request:
SkY!AVEjDy2DGyMCE6RO0qhs56aR1/zf42OXBlbdErz6sVTLW6iHFk+wQUhRX6aSEDkI0w==
Ring request:
SkY!AZbZmdMB6eVOig9Y5Ol6QtCQZAVU8XFZLi19k95Cqzn14CZ+qKuUi+2ha3VFqbRdXA==
Lock request: pin 1234, text Chris
SkY!AYDmzGeCMrT8NeDWmn5QaK96Jvsv0mQZIqEgwzvwE35ZCuBZea4M349kMwBkjVV63Y0ROvV+okapsl7UnzqcJBU=
You would think that MS would filter these texts out of the sync process...
The Ring request worked and GPS location failed (btw, the GpsSample from the SDK does not work either). So no MS I don't want to pay 4.99$ for your non-working premium services.
Sky Command Received | Command Locate (ID 2) | Request Id 22815
Sky Command Received | Command Ring (ID 1) | Request Id 22816
I wish the app was .NET like bing so I can reflect on it.
\Application Data\Microsoft\My Phone\Config.dat contains some service end point info. I would like to get the WSDL of those.
I'm curious about HKLM\init\Myphone\OEMOverride = 1.
This is great MS, due to your SMS interceptor I can't send myself any SMSs that start with 'SkY!'.
I tried resending the above SkY requests to my phone. The only thing that happened was the phone backlight came on (the SMS was not visible) and \Application Data\Microsoft\My Phone\MyPhoneLog.txt got an entry appended but the request was not valid. keep in mind that I had to uninstall the MyPhone app and use the MyPhone web site to send out those SMSs so that they would not get intercepted by MyPhoneService.dll.
I stopped the SBB0: service but the SMS still got intercepted. I didn't stop the Notification though: NamedEvents\MyPhoneRuntimeStartRuntime (if that's the right notification).
I guess the next step would be to write a .NET SMS interceptor to see if it will intercept the SMSs or not.
it looks like the interception is done using MAPI Rules which I assume is processed before MessageInterceptor and it looks like the SMS cannot be replayed...
List of commands:HKEY_LOCAL_MACHINE\Software\Microsoft\My Phone\SkyServices\SkyCommands
Hi,
I had a problem where:
1. cell phone at 123456789 sends me an SMS
2. the incoming address displays as "[email protected]"
2. The default android messaging app would reply as SMS
3. I send the reply
4. person A never receives the reply
I fixed the problem , and am documenting it here.
This seems related to:
code.google.com android issues 1233
code.google.com android issues 9392
droidforums dot net forum droid-general-discussions 61733-callwave-com-possible-erase-all-text-history-start-over.html
Platform:
Sprint HTC HERO200
Android: 2.3.3
Circumvention:
Do not reply to SMS-as-MMS. Create a new SMS with recipient's phone number as destination.
Fix:
adb shell
sqlite3 /data/data/com.android.providers.telephony/databases/mmssms.db
select * from canonical_addresses where address like '%callwave%';
delete from canonical_addresses where address like '%callwave%';
select * from canonical_addresses where address like '%callwave%';
.exit
Explanation:
I previously used callwave.
So, the address "[email protected]" was associated in the mmssms database with the cell phone at 123456789.
Deleting this association from the database fixed the problem.
Overview of SQL statements:
1. The first "select" lists all the address records that have the string "callwave" in them.
If you are having this problem, there should be a record in the list where the address matches the problem you are having.
2. The "delete" removes all such records.
3. The second "select" searches for all such records again. This time, the list should be empty.
I hope this helps someone.