Application类中的电话管理器

时间:2015-05-05 16:20:19

标签: android telephonymanager android-context

当我尝试使用电话管理器从Activity类中检索电话号码时,我能够成功完成。但我将在应用程序的多个位置使用电话号码,因此我将电话号码转移到我的应用程序类中的静态字段。

    public class FourApplication extends Application {

    static String phonenumber ;
    @Override
    public void onCreate() {
        super.onCreate();
        ParseObject.registerSubclass(Post.class);
        // Add your initialization code here
        Parse.initialize(this, "**********", "*********");


        ParseACL defaultACL = new ParseACL();

        // If you would like all objects to be private by default, remove this
        // line.
        defaultACL.setPublicReadAccess(true);

        ParseACL.setDefaultACL(defaultACL, true);
        phonenumber = getPhoneNumber();
    }

    public String getPhoneNumber()
    {
        TelephonyManager tMgr =(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
        String mPhoneNumber = tMgr.getLine1Number(); ;


          Log.i("mPhoneNumber : ", mPhoneNumber);
        return mPhoneNumber;
    }
}

我在这里犯的错误是什么?我通读了几个与上下文相关的问题和线程,我不知道我的代码中出了什么问题,因为我在这里是菜鸟。

编辑:我的问题是,当我将电话管理器部分移动到应用程序类时,它不会返回电话号码。那是为什么?

1 个答案:

答案 0 :(得分:0)

@ 55597

请使用以下代码。您遇到了问题

TelephonyManager tMgr =(TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);

您没有为TelephonyManager传递正确的Activity上下文,因此返回null。