此示例演示了如何在android中获取默认手机IMEI。
步骤1-在Android Studio中创建一个新项目,转到File⇒New Project并填写所有必需的详细信息以创建一个新项目。
步骤2-将以下代码添加到res / layout / activity_main.xml。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:gravity="center" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <TextView android:id="@+id/text" android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
在上面的代码中,我们采用了文本视图来显示电话IMEI。
步骤3-将以下代码添加到java / MainActivity.xml
package com.example.myapplication; import android.Manifest; import android.content.Context; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.RequiresApi; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.telephony.TelephonyManager; import android.widget.TextView; import static android.Manifest.permission.READ_PHONE_NUMBERS; import static android.Manifest.permission.READ_PHONE_STATE; import static android.Manifest.permission.READ_SMS; public class MainActivity extends AppCompatActivity { private static final int PERMISSION_REQUEST_CODE = 100; TextView textView; TelephonyManager telephonyManager; @RequiresApi(api = Build.VERSION_CODES.P) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = findViewById(R.id.text); telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); if (ActivityCompat.checkSelfPermission(this, READ_SMS) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, READ_PHONE_NUMBERS) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{READ_SMS, READ_PHONE_NUMBERS, READ_PHONE_STATE}, PERMISSION_REQUEST_CODE); } else { textView.setText(""+telephonyManager.getImei()); } } @RequiresApi(api = Build.VERSION_CODES.P) @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case PERMISSION_REQUEST_CODE: if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_NUMBERS) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { return; } else { textView.setText(""+telephonyManager.getImei()); } } } }
步骤3-将以下代码添加到AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapplication"> <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
点击这里下载项目代码
问题内容: 单击按钮时,我想从Android手机获取时区。 问题答案: 您是否尝试过使用: 大多数应用程序将使用 TimeZone.getDefault() ,它根据程序运行的时区返回TimeZone。 参考:http : //developer.android.com/reference/java/util/TimeZone.html
问题内容: 我发现检索MCC和MNC的唯一方法是通过重写活动的onConfigurationChanged方法,如下所示: 但是,我需要在应用启动后立即获取这些数据,不能等待用户切换手机的方向或等效方式来触发此方法。有没有更好的方法来访问当前的Configuration对象? 问题答案: 该TelephonyManager有返回MCC + MNC作为一个字符串的方法(getNetworkOpera
问题内容: 我正在尝试使用以下代码来获取当前在手机上设置的警报数。 但是当我尝试使用 请让我知道我在做什么错吗?异常发生在getCount()本身中,因此我无法显示警报数量。 编辑: 我也在LogCat上收到此消息: 问题答案: 该你要找的是的,但你不能访问应用的,因为它没有出口。您将只扔一个。
我正在发出警报,服务由警报启动。我希望服务接收额外数据,因此在谷歌搜索中,我将标志设置为Intent。FILL_IN_DATA。下面是我的代码。(仅显示重要部分)(我有几种警报模式,调用不同的服务) } 服务端代码(编辑:此代码在BService类中。AService不需要接收额外代码。) 但是,结果始终为-1,这意味着没有额外收到。 我的代码有什么问题?我在谷歌上搜索了几个小时,没有任何希望。
问题内容: 我想使用Java获取本地计算机的默认网关。我知道如何通过执行dos或shell命令来获取它,但是还有其他获取方法吗?还需要获取主要和辅助dns ip。 问题答案: 没有简单的方法可以做到这一点。您必须调用本地系统命令并解析输出,或者读取配置文件或注册表。我知道没有一种独立于平台的方式可以实现此目的- 如果要在所有平台上运行,则必须为linux,mac和Windows进行编码。 请参阅如