Android编程 - 希望人们在第一次打开我的应用时输入电话号码

时间:2014-10-20 12:15:09

标签: android

我需要知道我正在制作的应用的人们电话号码,因为应用程序围绕着电话号码。由于我找不到任何通过手机获取A号码的简单方法,我希望有人第一次打开应用程序,他们输入他们的电话号码。我似乎无法在谷歌上找到类似的东西。

这里的任何小伙伴都对如何使这项工作有任何想法?

PS。 我对Android编程和编程很陌生!

2 个答案:

答案 0 :(得分:0)

您可以使用

获取电话号码
TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);  
String mPhoneNumber = tMgr.getLine1Number();

在Manifest中:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

然而,这一切都不会起作用(在this这样的类似问题中的一些评论甚至暗示它几乎不起作用。)

所以你应该做的是在应用程序启动时提示用户,从文本字段或其他东西获取他的输入并将其存储在你能够获得它的地方。最好的方法是将它存储在SharedPreferences中:

SharedPreferences prefs = this.getSharedPreferences(
  "com.example.app", Context.MODE_PRIVATE);


String phoneNumber = ""; 

//save
prefs.edit().putString("phoneNumber", phoneNumber).apply();

//read
phoneNumber = prefs.getString(phoneNumber, ""); 

与此类似,您可以在首次启动应用程序后保存bool(putBoolean和getBoolean),以便您可以跟踪它。只需在获得号码后将其设置为false,并在每次重新启动应用程序时检查它。

答案 1 :(得分:0)

添加一个新活动,并从AndroidManifest.xml中将其设为启动器活动

public class PhoneActivity extends Activity {
String number;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    checkStatus();
    //considering that SliderActivity is your current main activity

        if (number.equals("")) { //finish this activity if number already present
        Intent sliderIntent = new Intent(PhoneActivity .this,
                SliderActivity.class);
        startActivity(sliderIntent);
        finish();
    } 


  //In xml create an edittext

   phoneEditText.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
         SharedPreferences.Editor editor = settings.edit();
         editor.putString("number", phoneEditText.getText().toString());
         Intent sliderIntent = new Intent(PhoneActivity .this,
                SliderActivity.class);
        startActivity(sliderIntent);
        finish();
        }
    });

}

    public void checkStatus()
    {
    SharedPreferences settings = getSharedPreferences("myPref", 0);
    number= settings.getString("number", "");
    }

}