【问题标题】:Xamarin Android Emulator Phone NumberXamarin Android 模拟器电话号码
【发布时间】:2015-08-02 13:31:47
【问题描述】:

我正在使用 Xamarin 和 Android 模拟器。我想编写一个简单的应用程序来获取用户的电话号码。我正在使用

            TelephonyManager mTelephonyMgr;

            mTelephonyMgr = (TelephonyManager)GetSystemService(TelephonyService);

            var Number = mTelephonyMgr.Line1Number;

但它不起作用。该应用程序在第 2 行崩溃。我的问题是,

  • 模拟器有电话号码吗?
  • 如何让它在模拟器上运行,然后在实际设备上运行?

这是我得到的例外

+       ex  {Java.Lang.SecurityException: Exception of type 'Java.Lang.SecurityException' was thrown.
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000b] in <filename unknown>:0 
  at Android.Runtime.JNIEnv.CallObjectMethod (IntPtr jobject, IntPtr jmethod) [0x00063] in /Users/builder/data/lanes/1780/3518c4ce/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:178 
  at Android.Telephony.TelephonyManager.get_Line1Number () [0x00043] in /Users/builder/data/lanes/1780/3518c4ce/source/monodroid/src/Mono.Android/platforms/android-10/src/generated/Android.Telephony.TelephonyManager.cs:377 
  at UnwantedNumbers.MainActivity.<OnCreate>b__0 (System.Object param0, System.EventArgs param1) [0x00013] in e:\data\trunk\Yuan Miao\Coding Examples\Mobile App\UnwantedNumbers\UnwantedNumbers\MainActivity.cs:39 
  --- End of managed exception stack trace ---
java.lang.SecurityException: Requires READ_PHONE_STATE: Neither user 10037 nor current process has android.permission.READ_PHONE_STATE.
    at android.os.Parcel.readException(Parcel.java:1322)
    at android.os.Parcel.readException(Parcel.java:1276)
    at com.android.internal.telephony.IPhoneSubInfo$Stub$Proxy.getLine1Number(IPhoneSubInfo.java:231)
    at android.telephony.TelephonyManager.getLine1Number(TelephonyManager.java:624)
    at mono.android.view.View_OnClickListenerImplementor.n_onClick(Native Method)
    at mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:29)
    at android.view.View.performClick(View.java:2485)
    at android.view.View$PerformClick.run(View.java:9080)
    at android.os.Handler.handleCallback(Handler.java:587)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:123)
    at android.app.ActivityThread.main(ActivityThread.java:3683)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    at dalvik.system.NativeStart.main(Native Method)
}   Java.Lang.SecurityException

【问题讨论】:

  • 您是否需要清单中的特定 Android 权限?
  • 包含发生的异常是个好主意。这样就更容易确定应用崩溃的确切原因。

标签: xamarin


【解决方案1】:

它在你的例外android.permission.READ_PHONE_STATE 中说明了这一点。将该权限添加到您的清单中,您应该一切顺利...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 2012-11-02
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 2011-09-15
    相关资源
    最近更新 更多