对于将图像提交到服务器的iPhone应用程序,我需要以某种方式将特定手机中的所有图像绑定在一起.每次提交我都想发送一些独特的手机ID.看着
[[UIDevice mainDevice] uniqueIdentifier]
and [[NSUserDefaults standardDefaults] stringForKey:@"SBFormattedPhoneNumber"]
但在模拟器中得到错误.
有苹果认可的方式吗?
Square的新名片盒iOS应用程序具有"创建帐户"功能.点击它,它会显示一个表格PREPOPULATED与用户在地址簿中的条目.
这怎么可能?谁知道?我认为这是不可能的,以这种方式获取用户的信息.这不是iOS 5.0的东西,afaict.
我需要以编程方式获取我的iOS设备的电话号码.
通过谷歌我发现这个代码:
NSString *num = [[NSUserDefaults standardUserDefaults] stringForKey:@"SBFormattedPhoneNumber"];
NSLog(@"Phone Number: %@", num);
Run Code Online (Sandbox Code Playgroud)
但在某处,我读到如果我使用此代码,Apple将拒绝我的应用程序.
有没有办法在没有用户输入的情况下获取当前的设备电话号码?
旧方法不再起作用:
//方式1
void *lib = dlopen("/Symbols/System/Library/Framework/CoreTelephony.framework/CoreTelephony", RTLD_LAZY);
NSString* (*getPhoneNumber)() = dlsym(lib, "CTSettingCopyMyPhoneNumber");
if (getPhoneNumber == nil) {
NSLog(@"getPhoneNumber is nil");
return nil;
}
NSString* ownPhoneNumber = getPhoneNumber();
Run Code Online (Sandbox Code Playgroud)
//方式2
extern NSString* CTSettingCopyMyPhoneNumber();
NSString *phone = CTSettingCopyMyPhoneNumber();
Run Code Online (Sandbox Code Playgroud)
相关问题:
[UPDATE]
提供的方法适用于不带JB的iOS 6.1.4和带有JB的iOS 7.1.2
感谢用户creker提示!
要获得号码,您必须使用以下方式:
1.代码
-(NSString*) getMyNumber {
NSLog(@"Open CoreTelephony");
void *lib = dlopen("/Symbols/System/Library/Framework/CoreTelephony.framework/CoreTelephony",RTLD_LAZY);
NSLog(@"Get CTSettingCopyMyPhoneNumber from CoreTelephony");
NSString* (*pCTSettingCopyMyPhoneNumber)() = dlsym(lib, "CTSettingCopyMyPhoneNumber");
NSLog(@"Get CTSettingCopyMyPhoneNumber from CoreTelephony");
if (pCTSettingCopyMyPhoneNumber == nil) {
NSLog(@"pCTSettingCopyMyPhoneNumber is nil");
return nil;
} …Run Code Online (Sandbox Code Playgroud) 如何获取J2ME应用程序中的电话号码(不是联系号码等)?属于手机中SIM卡的电话号码.
我正在开发一个需要用户电话号码的iPhone应用程序.从我读过的内容(例如 - 在iOS中以编程方式获取自己的电话号码),设备的电话号码在应用程序的容器中不可用.我总是让用户输入他或她自己的号码.但是当我有一天加入GroupMe时,在点击"开始使用"按钮后,我的手机打开了一条草稿短信到一些美国地区代码"发送此文本以验证您的电话号码(b2bd308eb7)"我发送文本后,应用程序知道我的号码....如何实现这样的系统?
如何使用Flutter以编程方式获取运行我的android应用的设备的电话号码?
我知道我们可以使用以下语法在android studio中轻松做到这一点:
TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();
Run Code Online (Sandbox Code Playgroud)
但是如何使用颤动呢?
我正在研究xamarin.forms。我需要获取电话号码,如果设备是双SIM卡,那么我需要获取两个号码。我该如何实现?引用我来到这里后,有很多与此相关的问题。
我在shard项目中创建了一个接口,并在android项目中实现了该接口。android.permission.READ_PHONE_NUMBERS
在共享项目中创建接口
public interface IDeviceInfo
{
string GetMyPhoneNumber();
}
Run Code Online (Sandbox Code Playgroud)
在android项目中实现了界面
public string GetMyPhoneNumber()
{
try
{
TelephonyManager mgr =
Android.App.Application.Context.GetSystemService(Context.TelephonyService) as TelephonyManager;
return mgr.Line1Number;
}
catch (Exception ex)
{
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
在按钮之一上单击共享项目
private void GetPhone_Clicked(object sender, EventArgs e)
{
try
{
var data = DependencyService.Get<IDeviceInfo>().GetMyPhoneNumber();
}
catch (Exception ex)
{
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用android 5时,它返回空字符串,如果我使用android 6+,则给出权限错误,如Java.Lang.SecurityException:getLine1NumberForDisplay:用户10286或当前进程都没有android.permission.READ_PHONE_STATE,android.permission。 READ_SMS或android.permission.READ_PHONE_NUMBERS
如何在所有Android版本中解决此问题?