2016-12-17 68 views
-2

Android清单当我尝试检索IMIE号码我的应用程序崩溃...这里是我的代码

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

MainActivity.java

import android.content.Context; 
    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.telephony.TelephonyManager; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.TextView; 

    public class MainActivity extends AppCompatActivity { 

     TextView tv; 
     Button bn; 
     String imei; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      tv = (TextView)findViewById(R.id.tvimei); 
      bn = (Button)findViewById(R.id.button); 

      TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
      imei = telephonyManager.getDeviceId(); 
      bn.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        tv.setText(imei); 
       } 
      }); 

     } 
    } 

我试图获取imei号码并将其显示在主页上以进行测试,但是一旦我在手机上运行应用就会崩溃

+4

Ajitesh嗨,你可以发送logcat的文件崩溃 –

回答

0

嗨尝试添加权限,如果你的设备是棉花糖检查下面的代码也

import android.content.Context; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.telephony.TelephonyManager; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 
    private static final int PERMISSION_REQUEST_CODE = 1; 
    TextView tv; 
    Button bn; 
    String imei; 

    private boolean checkPermission(){ 
    int result = ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_PHONE_STATE); 

    if (result == PackageManager.PERMISSION_GRANTED){ 
     return true; 
    } else { 
     return false; 
    } 
} 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     tv = (TextView)findViewById(R.id.tvimei); 
     bn = (Button)findViewById(R.id.button); 
     if(checkPermission()){ 
     Snackbar.make(view, "Permission already granted.", Snackbar.LENGTH_LONG).show(); 
     TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
     imei = telephonyManager.getDeviceId(); 
    }else{ 
     Snackbar.make(view,"Please give access to read your phone state.",Snackbar.LENGTH_LONG).show(); 
     requestPermission(); 
    } 

     bn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       tv.setText(imei); 
      } 
     }); 

    } 

    private void requestPermission() { 
    if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_PHONE_STATE)){ 

     Toast.makeText(getApplicationContext(),"Give permission to check whether internet is of or on.",Toast.LENGTH_LONG).show(); 

    } else { 

     ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_PHONE_STATE},PERMISSION_REQUEST_CODE); 
    } 
} 
@Override 
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case PERMISSION_REQUEST_CODE: 
      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

       Snackbar.make(view,"Permission Granted, Now you can check network status.",Snackbar.LENGTH_LONG).show(); 

      } else { 

       Snackbar.make(view,"Permission Denied, You cannot check networkstatus.",Snackbar.LENGTH_LONG).show(); 

      } 
      break; 

    } 
} 
} 
相关问题