如何避免已发布的 android 应用程序显示应用程序包名称
Posted
技术标签:
【中文标题】如何避免已发布的 android 应用程序显示应用程序包名称【英文标题】:How to avoid released android app from showing apps package name 【发布时间】:2016-07-18 08:44:07 【问题描述】:我想在 google play store 上发布我的应用程序。目前应用的名称显示正确,但在卸载应用的选项中,显示的是完整的包名称,我想避免这种情况,而是在那里显示应用的名称。
这可能吗?如果可以,我将如何实现?
这是我的清单文件
<?xml version="1.0" encoding="utf-8"?>
<!--
The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
Google Maps android API v2, but you must specify either coarse or fine
location permissions for the 'MyLocation' functionality.
-->
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="com.sonyericsson.home.permission.BROADCAST_BADGE" />
<!-- GCM -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:icon="@drawable/ic_icon"
android:name="android.support.multidex.MultiDexApplication"
android:largeHeap="true"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProvider12345678"
android:exported="true" />
<activity
android:name=".SplashScreen"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
</activity>
<activity
android:name=".AddActivity"
android:label="@string/title_activity_add"
android:parentActivityName=".MainActivity"
android:theme="@style/AppTheme.NoActionBar" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.app.name.MainActivity" />
</activity>
<activity
android:name=".DiscoverActivity"
android:label="@string/title_activity_discover"
android:parentActivityName=".MainActivity"
android:theme="@style/AppTheme.NoActionBar" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.app.name.MainActivity" />
</activity>
<activity
android:name=".DetailActivity"
android:label="@string/title_activity_detail"
android:parentActivityName=".MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<activity
android:name=".ProfileActivity"
android:label="@string/title_activity_profile"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<activity
android:name=".EditProfileActivity"
android:label="@string/title_activity_edit_profile"
android:parentActivityName=".ProfileActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.app.name.ProfileActivity" />
</activity>
<!--
The API key for Google Maps-based APIs is defined as a string resource.
(See the file "res/values/google_maps_api.xml").
Note that the API key is linked to the encryption key used to sign the APK.
You need a different API key for each encryption key, including the release key that is used to
sign the APK for publishing.
You can define the keys for the debug and release targets in src/debug/ and src/release/.
-->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps"
android:screenOrientation="portrait" >
</activity>
<!-- FACEBOOK ACTIVITY -->
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name=".FriendsActivity"
android:label="@string/title_activity_friends"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<activity
android:name=".RegisterActivity"
android:label="@string/title_activity_register"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<activity
android:name=".NotificationsActivity"
android:label="@string/title_activity_notifications"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<!-- GCM -->
<!-- [START gcm_receiver] -->
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="gcm.play.android.samples.com.gcmquickstart" />
</intent-filter>
</receiver>
<service
android:name=".MyGcmListenerService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service
android:name=".MyInstanceIDListenerService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
<service
android:name=".NotificationService"
android:exported="false" >
</service>
<!-- make API to register app to GCM available -->
<service
android:name=".RegistrationIntentService"
android:exported="false" >
<intent-filter>
<action
android:name="com.google.android.gms.iid.InstanceID"
android:permission="com.google.android.c2dm.permission.RECEIVE" />
</intent-filter>
</service>
<activity
android:name=".EditActivity"
android:label="@string/title_activity_edit"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<activity
android:name=".BasesActivity"
android:label="@string/title_activity_bases"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
<activity
android:name=".SettingsActivity"
android:label="@string/title_activity_settings"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
</activity>
</application>
【问题讨论】:
你能附上图片吗?我正在查看我手机中的一些应用程序(其中一个在 playstore 中,其他一些是为了好玩而没有发布,但仍然安装),它们都没有显示包名称。另外我不记得曾经看过包名,因此我没有做任何特别的事情来隐藏它。 嗯然后我做错了。在应用程序管理器中显示它的包名/应用程序ID。 检查您的清单。检查清单中的“android:label”。你给了什么标签? 这是我想要显示的名字 在应用程序标签里面吧。? 像这样。 【参考方案1】:清单应用程序标记中缺少 android:label。当我第一次添加它时,没有任何改变,但我今天再次测试它并且“错误”消失了。
【讨论】:
【参考方案2】:只需从AndroidManifest文件中的应用程序标签中删除android:name="android.support.multidex.MultiDexApplication"
,它肯定会解决问题。
【讨论】:
Please format your code properly以上是关于如何避免已发布的 android 应用程序显示应用程序包名称的主要内容,如果未能解决你的问题,请参考以下文章
Android 应用内购买订阅并免费试用 - 如何避免滥用?
Android pushwoosh:从通知(带触发器)启动应用程序时,如何避免显示“使用完成操作”对话框
如何创建一个包含 2 列的列表视图,显示所有已安装的 android 应用程序及其权限?
在 Android 移动网络应用程序中嵌入 pdf 时如何避免打开按钮?