Context.getPackageName() ব্যবহার করে প্যাকেজ নাম বের করা
প্রতিটি Android অ্যাপ্লিকেশনের একটি унікаল প্যাকেজ নাম থাকে যা Google Play Store-এ ও ডিভাইসে অ্যাপ আইডেন্টিফাই করতে ব্যবহৃত হয়। এটি Context ক্লাসের getPackageName() মেথড দিয়ে পাওয়া যায়।
লেআউট (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:padding="16dp" />
</LinearLayout>
MainActivity.java
package com.example.myapplication;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.text);
// প্যাকেজ নাম প্রিন্ট
String packageName = getPackageName();
textView.setText("Package Name:\n" + packageName);
// অতিরিক্ত ইনফো
String versionName = "";
int versionCode = 0;
try {
android.content.pm.PackageInfo info = getPackageManager().getPackageInfo(packageName, 0);
versionName = info.versionName;
versionCode = info.versionCode;
} catch (Exception e) {
e.printStackTrace();
}
textView.append("\n\nVersion: " + versionName + " (" + versionCode + ")");
}
}
প্যাকেজ নামের গুরুত্ব
- Application ID: build.gradle-এ
applicationId(ডিফল্টলি প্যাকেজ নামই) - Unique Identifier: Play Store, ডিভাইস, ADB সব জায়গায় একই
- Permission Model: অন্য অ্যাপের ডেটা অ্যাক্সেস কন্ট্রোল করে
- Process Name: ডিফল্ট প্রসেস নাম প্যাকেজ নাম হয়
রানটাইমে প্যাকেজ ইনফো পাওয়ার অন্যান্য উপায়
// ১. Context থেকে
String pkg = context.getPackageName();
// ২. PackageManager থেকে অ্যাপ লেবেল
String appLabel = getPackageManager().getApplicationLabel(
getPackageManager().getApplicationInfo(pkg, 0)
).toString();
// ৩. Installer প্যাকেজ নাম (যে স্টোর থেকে ইনস্টল হয়েছে)
String installer = getPackageManager().getInstallerPackageName(pkg);
// "com.android.vending" = Play Store, "com.google.android.feedback" = Play Console, null = সাইডলোড
// ৪. সিগনেচার (সাইনিং সার্টিফিকেট)
android.content.pm.Signature[] sigs = getPackageManager()
.getPackageInfo(pkg, PackageManager.GET_SIGNATURES).signatures;
Gradle-এ Application ID সেট করা
android {
defaultConfig {
applicationId "com.mycompany.myapp" // এটি হবে প্যাকেজ নাম
versionCode 1
versionName "1.0"
}
// ফ্লেভার অনুযায়ী আলাদা প্যাকেজ নাম
productFlavors {
free { applicationIdSuffix ".free" }
pro { applicationIdSuffix ".pro" }
}
}
