Tôi đang xây dựng ứng dụng yêu cầu một số dữ liệu từ Nhật ký cuộc gọi của iPhone (chỉ đọc). Nhật ký cuộc gọi là một db sqlite có tại "/User/Library/CallHistory/call_history.db". Tôi đã sử dụng một thiết bị bẻ khóa để trích xuất nhật ký. Tuy nhiên, cố gắng mở vị trí này bằng cách sử dụng lệnh sqlite_open3() Tôi nhận được lỗi SQLITE_ERROR, theo tài liệu thư viện có nghĩa là "lỗi SQL hoặc cơ sở dữ liệu bị thiếu". Trong một nỗ lực để gỡ lỗi, tôi đã sử dụng NSFileManager để liệt kê thư mục ('/ User/Library /'). Nó sẽ xuất hiện như thể nó trở về một bộ lọc "kết quả", loại trừ thư mục 'CallHistory' cùng với một vài thư mục khác.Truy cập nhật ký Cuộc gọi của iPhone bằng iPhone SDK
Hệ thống tệp sử dụng một loạt bí danh để tạo ảo giác về cấu trúc tệp OS X truyền thống và tôi không biết liệu chúng có ảnh hưởng đến kết quả của tôi hay không.
Nhật ký cuộc gọi chỉ hiển thị trên thiết bị chứ không phải trình mô phỏng. Tôi đã không thể làm cho nó hoạt động trên iPhone thế hệ thứ nhất chạy phần mềm chống cháy 2.1.
Đây là một số mã tôi đã sử dụng để kiểm tra đầu ra
NSDirectoryEnumerator *dirnum = [[NSFileManager defaultManager] enumeratorAtPath: @"/private/var/mobile/Library/"];
while(bar = [dirnum nextObject])
{
//Uncomment if you don't want to log sub folders
//[dirnum skipDescendents];
NSLog(bar);
}
Tôi có một nghi ngờ rằng Apple đang chặn truy cập vào các thư mục như là một phần của chiến lược sandboxing của nó, tuy nhiên tôi không có bằng chứng ở giai đoạn này. Tuy nhiên, tôi có thể truy cập sổ địa chỉ mà không gặp bất kỳ vấn đề gì, vì vậy tôi hơi bối rối.
Cảm ơn
trừ khi bạn bẻ khóa. –
cách ứng dụng này hoạt động? bạn có biết gì về điều này không - http://itunes.apple.com/us/app/callog/id327883585?mt=8 – Saurabh
Tôi tự hỏi làm cách nào CalLog cũng làm như vậy – Zebs