iOS, Android, Windows mobile development codes and tips

Yazılar Etiketlenmiş sdk

iOS Documents Klasörüne Dosya Kopyalamak

Uygulamanız cihaz üzerinde çalıştığında yazma izni sadece /Documents klasöründe vardır. Bu nedenle .sqlite gibi yazma izni gerektiren dosyalarınızı bu klasörde çalıştırmanız gereklidir.
Fakat Xcode size dosyalarınızı koyabileceğiniz bir /Documents klasörü sunmaz. Uygulamanız, cihaza yüklendiğinde otomatik yaratılan bu klasöre bir dosya kopyalamak için aşağıdaki kodu kullanabilirsiniz.
Yüklemek istediğiniz dosya root(ana) dizinde xcode projenize eklenmiş olmalıdır.
İlgili kontrol kodlarını da ekleyerek bu işlemi sadece bir kez yapmalısınız, aksi halde uygulamanız her açıldığında dosyanın üzerine kopyalarsınız ve kullanıcıya veri kayıpları yaşatabilirsiniz.


NSFileManager *fmngr = [[NSFileManager alloc] init];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"history.sqlite" ofType:nil];
NSError *error;
if(![fmngr copyItemAtPath:filePath toPath:[NSString stringWithFormat:@"%@/Documents/history.sqlite", NSHomeDirectory()] error:&error]) {
// handle the error
NSLog(@"Dosya yaratılamadı: %@", [error description]);
}
[fmngr release];

iOS Sunucuya Veri Gönderme

Uygulamadan sunucumuzdaki bir php dosyasına veri göndermek için aşağıdaki kodu kullanabiliriz.
Örneğimizde cihazla ilgili bazı bilgileri gönderiyoruz.


#import "UIDeviceHardware.h"

- (void) postDataRequest {

NSString *urlstr = [[NSString alloc] initWithFormat:@"http://www.sulubeyn.com./data.php?name=%@&sysver=%@&uuid=%@&v=1.0",
[[UIDevice currentDevice] name],
[[UIDevice currentDevice] systemVersion],
[[UIDevice currentDevice] uniqueIdentifier]
];
NSString *urlstrEscape = [urlstr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:urlstrEscape]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:3.0];

NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest
delegate:self];
NSLog(@"%@", theConnection);
}

iOS SMS Gönderimi

Uygulamadan çıkmadan SMS gönderim ekranını telefon numarası ve mesaj hazır bir şekilde göstermek için aşağıdaki kodu kullanabilirsiniz.

- (void) SMSContact {

NSString *SMSnumber = @"05001234567";
NSString *SMStext = @"Hello Sulubeyn";

Class smsClass = (NSClassFromString(@"MFMessageComposeViewController"));
if (smsClass != nil && [MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
controller.body = SMStext;
controller.recipients = [NSArray arrayWithObject: SMSnumber];
controller.messageComposeDelegate = self;
[self presentModalViewController:controller animated:YES];
[controller release];

} else {
//Cihaz SMS desteklemiyorsa uyarı çıkartalım.
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Cihaz SMS desteklemiyor!"
delegate:self cancelButtonTitle:nil otherButtonTitles:@"Tamam", nil];
alert.tag = 1;
[alert show];
[alert release];

}

}

Kullanıcının yaptığı işlemi kontrol etmek için aşağıdaki kodu kullanmamız gerekiyor.

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {

switch (result)
{
case MessageComposeResultCancelled:

NSLog(@"Sonuç: sms iptal edildi");
break;
case MessageComposeResultSent:
NSLog(@"Sonuç: sms gönderildi");
break;
case MessageComposeResultFailed:
NSLog(@"Sonuç: sms başarısız");
break;
default:
NSLog(@"Sonuç: sms gönderilmedi");
break;
}

//Statusbar kapalıysa bile görünebilir, bunu engellemek için bu kodu eklemekte fayda var.
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];

//Viewi kapatıyoruz
[self dismissModalViewControllerAnimated:YES];

}