0

アプリでiPhoneメッセージの受信トレイを読むのに問題があり、次のコードを使用しました:

- (IBAction) read{

    NSString *text = @"";

    sqlite3 *database;
    if(sqlite3_open([@"/var/root/Library/SMS/sms.db" UTF8String], &database) == SQLITE_OK) {
        sqlite3_stmt *statement;

        const char *sql4 = "SELECT * from message ORDER BY rowid DESC";  // TODO: different for iOS 4.* ???
        const char *sql5 = "SELECT * from message ORDER BY rowid DESC";

        NSString *osVersion =[[UIDevice currentDevice] systemVersion];         
        if([osVersion hasPrefix:@"5"]) {
            // iOS 5.* -> tested
           sqlite3_prepare_v2(database, sql5, -1, &statement, NULL);
        } else {
            // iOS != 5.* -> untested!!!
            sqlite3_prepare_v2(database, sql4, -1, &statement, NULL);
        }

        // Use the while loop if you want more than just the most recent message
        while (sqlite3_step(statement) == SQLITE_ROW) {
            if (sqlite3_step(statement) == SQLITE_ROW) {
                char *content = (char *)sqlite3_column_text(statement, 0);
                text = [NSString stringWithCString: content encoding: NSUTF8StringEncoding];
                sqlite3_finalize(statement);
            }
        }

        sqlite3_close(database);
    }

    showsms.text=text;
    NSLog(@"test");
}

しかし、「SMS.DB」にアクセスできません。インターネットで検索しましたが、このような問題を抱えている人はいません。コードを書くか、彼の方法を教えてください。

ありがとう

4

1 に答える 1

4

アプリのサンドボックスでは、そのファイルにアクセスできません。あなたがそれを機能させたとしても、Appleはそれを店で許可しませんでした。

于 2012-06-24T14:27:59.910 に答える