如何避免已发布的 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 时如何避免打开按钮?

Android 应用程序说已发布,但同时表示它也“卡在”“待更新”中!如何解决?

如何将 kivy 应用程序连接到 Android 已安装的应用程序