没有工作意向自定义权限(Intent custom permission not working)

2019-08-18 03:08发布

UPDATE

我眼前的问题就解决了按我的回答如下。 我的环境(PC +设备)不允许自定义权限在调试版本中。

我相信我是能够运行调试版本精细几个星期前 - 一个“间歇性”错误的,因此说明。

更新2

不同的开发人员的机器上进行同步的代码,致力于通过Eclipse的他的设备在调试模式下的罚款。 在我的设备,它不会从他的机器工作。

另外,从我的机器调试版本工作正常,这个其他设备上。

这使我怀疑,如果出了问题我的设备?


我有一个自定义权限间歇“权限拒绝”的问题Intents 。 这是那些代码是在生产和工作中的一个,但有时使新建立的时候,它停止工作。 我只设法运气之前修复它,通过重新启动(设备和PC),清洁工程,卸载/重新安装,重复等等...这是不可接受的过程。

至于我可以看到我做的一切正确的为我的自定义权限Intents ,我我的应用程序内广播。 但logcat的是给我的错误,通常:

  • W / BroadcastQueue(389):权限拒绝:广播意图{ACT = A_ACTION FLG = 0×10}从com.test(PID = 22030,UID = 10002)要求A_PERMISSION由于注册接收机BroadcastFilter {43918d50 U0 ReceiverList {4391cad8 22030 com.test / 10002 / U0远程:430576d0}}

4.2.1(银河NEXUS)4.2.2(的Nexus 7),或

  • W / ActivityManager(2002):权限拒绝:接收意图{ACT = A_ACTION FLG = 0×10}至{ProcessRecord 41a12748 31496:com.test / 10115}(PID = 31496,UID = 10115)要求A_PERMISSION由于发送者com.test(的uid 10115)

在4.0(S2)和2.3.3(三星ACE)。

即标准误差。


我的清单说:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test"
    android:versionCode="1"
    android:versionName="4.10.0.3" >

    <permission
        android:name="A_PERMISSION"
        android:description="@string/broadcast_permission_desc"
        android:label="@string/broadcast_permission_label"
        android:permissionGroup="@string/broadcast_permission_group"
        android:protectionLevel="signature" />

    <uses-permission android:name="A_PERMISSION" />

    etc.....

这些字符串被定义为(FWIW):

<string name="broadcast_permission_label">Private Broadcast</string>
<string name="broadcast_permission_desc">This permission allows the necessary components of the application to receive private broadcasts that are sent within the application.</string>
<string name="broadcast_permission_name">A_PERMISSION</string>
<string name="broadcast_permission_group">A_GROUP</string>

我在我的基本应用程序子类的方法,我用做广播:

public void sendBroadcast(Intent i)
{
    // hardcoded custom permission
    super.sendBroadcast(i, "A_PERMISSION");
}

我报名参加我的BroadcastReceiver从内Fragment是这样的:

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    // hardcoded custom permission
    MyApp.getInstance().registerReceiver(myReceiver, myFilter,
        "A_PERMISSION", null);
}

我已经检查没有喜悦以下相关问题:

  • Android的权限拒绝:广播意图
  • 如何使用自定义权限的Android?
  • 如何申报的Android用户定义的权限

我认为,包括本网站上类似的问题。

我的问题是,它的间歇,但浪费大量的时间,即一些在所有手机上建立的工作,有的建立失败的所有手机。

我不知道这是在框架中的一个(或者Android操作系统,或者是Eclipse的/ Android的SDK)的问题。 不幸的是我的google搜索只会导致我与通用解决方案更常见的问题。

Answer 1:

最终解决方案 - 我同意它似乎并没有什么意义,但在这里它是:

我必须使用相同的权限2个应用程序- com.testcom.runtest

如上所述, com.test被打破为调试版本。 但是我注意到com.runtest还在工作。


脚步:

  1. 安装com.runtest确认这是工作
  2. 从我的设备上卸载应用程序都
  3. 改名com.runtestcom.test -在Eclipse(Android的工具...重命名应用程序包)
  4. 调试在Eclipse中我的设备上此重命名的应用程序 - 它的工作
  5. 删除了这个更名为“假” com.test
  6. 调试原来com.test在Eclipse应用设备上-它终于成功了!

因此,出于某种原因,并覆盖破碎的应用程序与工作程序改变了一些东西,我的固定装置。



文章来源: Intent custom permission not working