在Android中可以通过用户的电话号码找到用户吗?如果可以将SMS发送给用户,则我们还可以检索或了解我们发送SMS的用户的位置。
我的意思是可以对以下功能进行编程:
最佳答案
是的,可能符合条件:
如果您已将应用程序安装在用户电话中,并且服务器应用程序与此应用程序进行通信,则最后在用户电话中激活了一个位置服务提供商,并获得了一些可怕的android权限!
在大多数的android手机中,有3个位置提供程序,可以提供准确的位置(GPS_PROVIDER 1m)或估算的位置(NETWORK_PROVIDER在2-20m左右)和PASSIVE_PROVIDER(更多在LocationManager官方文档中)。
1* App sends SMS to user's phone
是的,可以是服务器应用程序,也可以创建android应用程序(如果您希望自动化),因此可以通过从默认SMS应用程序发送SMS来手动进行操作!我使用Kannel:开源WAP和SMS网关,在这里(lot of APIs to send SMS)
2* App receives SMS at user's phone from the SMS sender
是的,您可以获得所有收到的短信,并且可以按发件人电话号码过滤它们!并在收到您指定的短信basic tuto here时执行一些操作(我根据我的SMS的内容执行了一些操作)
3* App gets location coordinates of the user's phone
是的,如果激活了位置提供者之一,则可以轻松获取实际的用户坐标,因此,当用户激活位置提供者之一时,您可以获取上一个已知的位置;如果禁用了这些位置或电话没有GPS硬件,则可以使用Open Cell Id api以获得最近的像元坐标(10m-10Km)或Loc8 api,但世界上尚无此坐标,并且某些应用程序使用IP location apis来获取国家/地区,城市和省份,此处为simplest way to get current user location。
4* App sends location coordinates to the SMS sender via SMS
是的,您可以在收到短信后或当天的指定时间获取发件人电话号码并发送用户位置。
(那4个给您的答案是:))
Viber和其他访问用户位置的应用程序,通过使他们有义务通过向手机应用程序发送SMS到服务器应用程序来创建帐户并激活免费服务(Ex:VOIP),从而通过那里的电话号码识别那里的用户,并在午餐时间提供以下服务:监听位置更改(GPS,网络或小区ID) 定期发送用户位置(例如:每2小时)或更改用户位置时! 在文件中存储用户位置并根据每日位置创建 map 接收短信并更新用户位置 推荐服务器应用程序并更新用户位置 当用户进入已定义的圆内或外时发送事件 听用户说并记录下来,或打开实时voip调用:s 也许您想或想做的任何事情:)!
而且您的应用程序用户在安装它时必须接受所有这些信息,因为我在安装:)之前先阅读权限,而权限也许可能是这样的,因为我不会安装这样的应用程序:<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> <uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="android.permission.SEND_SMS"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> <-- and more if you wanna more -->
最终用户将接受类似的内容(您询问的android应用程序的那些权限):
此应用有权访问以下权限:
您的帐户
-创建帐户并设置密码
-在设备上找到帐户
-添加或删除帐户
-在设备上使用帐户
-读取Google服务配置
您的位置
-大概位置(基于网络)
精确的位置(基于GPS和网络)
您的留言
-接收短信(SMS)
发送短信
-编辑您的短信(短信或彩信)
-阅读短信(短信或彩信)
网络通信
-从Internet接收数据
-完整的网络访问
查看Wi-Fi连接
查看网络连接
更改网络连接
电话
-读取电话状态和身份
-直接拨打电话号码
存储
-修改或删除USB存储设备的内容
您的应用程序信息
-检索正在运行的应用程序
-关闭其他应用
-在启动时运行
蓝牙
与蓝牙设备配对
-访问蓝牙设置
相机
拍照和录像
其他应用程序用户界面
-在其他应用程序上绘制
麦克风
-录制音频
锁定屏幕
-禁用屏幕锁定
您的社交信息
-阅读您的联系人
-修改您的联系人
阅读通话记录
-写通话记录
-阅读您的社交流
-写入您的社交流
开发工具
-读取敏感日志数据
系统工具
-修改系统设置
-发送粘性广播
-测试对 protected 存储的访问
影响电池
控制振动
-防止设备进入休眠状态
音频设置
-更改您的音频设置
同步设置
-读取同步设置
-切换同步的开启和关闭
-读取同步统计信息
壁纸
墙纸
关于android - 我们可以在Android中通过用户的电话号码找到用户吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21372685/
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html
我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
我正在阅读SandiMetz的POODR,并且遇到了一个我不太了解的编码原则。这是代码:classBicycleattr_reader:size,:chain,:tire_sizedefinitialize(args={})@size=args[:size]||1@chain=args[:chain]||2@tire_size=args[:tire_size]||3post_initialize(args)endendclassMountainBike此代码将为其各自的属性输出1,2,3,4,5。我不明白的是查找方法。当一辆山地自行车被实例化时,因为它没有自己的initialize方法
我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI
我喜欢使用Textile或Markdown为我的项目编写自述文件,但是当我生成RDoc时,自述文件被解释为RDoc并且看起来非常糟糕。有没有办法让RDoc通过RedCloth或BlueCloth而不是它自己的格式化程序运行文件?它可以配置为自动检测文件后缀的格式吗?(例如README.textile通过RedCloth运行,但README.mdown通过BlueCloth运行) 最佳答案 使用YARD直接代替RDoc将允许您包含Textile或Markdown文件,只要它们的文件后缀是合理的。我经常使用类似于以下Rake任务的东西:
我想让一个yaml对象引用另一个,如下所示:intro:"Hello,dearuser."registration:$introThanksforregistering!new_message:$introYouhaveanewmessage!上面的语法只是它如何工作的一个例子(这也是它在thiscpanmodule中的工作方式。)我正在使用标准的rubyyaml解析器。这可能吗? 最佳答案 一些yaml对象确实引用了其他对象:irb>require'yaml'#=>trueirb>str="hello"#=>"hello"ir
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。